В веб-сервисе .Net можно определить, была ли сборка загружена в веб-сервис? Если это так, как будет проводиться такая проверка? А по такой проверке можно определить исходное место сборки?
Это длинная история о том, что сборки разделяются между несколькими точками входа нашего приложения на сервере, некоторые из которых доступны через веб-службы, а другие - через более традиционные сокеты TCP, размещенные внутри обычных служб Windows. Также могут быть запущены другие службы Windows, использующие те же общие сборки. Конфигурационные потребности каждого из них немного различаются, и такие вызовы, как System.Windows.Forms.Application.ExecutablePath, дают разные результаты в зависимости от того, что является «размещением» сборки. Мне нужно иметь возможность надежно рассчитать местоположение сборки, чтобы вычислить местоположение файла конфигурации.
Web.config / app.config не являются параметрами в этом сценарии.
Можно было бы внести запись в реестр, которую можно было бы использовать, чтобы определить, где расположены приложение (я) и все сборки. Но это было бы не так желательно, как приложение (-и) самостоятельно вычислять местоположения.
EDIT:
Предположим, что foo.dll можно вызывать как из MyApp.asmx (веб-служба), так и из MyService.exe (служба Windows). В любом случае можно определить, было ли MyApp.asmx приложением, загружающим файл foo.dll из выделенного кода (MyApp.dll)?