Как узнать, на каком сайте запущено веб-приложение? - PullRequest
1 голос
/ 09 сентября 2010

В настоящее время я запускаю службу WCF на сервере AppFabric, и мое приложение должно динамически загружать файл web.config для получения пользовательских разделов конфигурации.

На моей машине для разработки я могу просто загрузить конфигурацию, какthis:

WebConfigurationManager.OpenMappedWebConfiguration(webMappedFile, virtualPath);

Но на тестовой машине (сервер AppFabric) я получаю исключение, и мне кажется, что мне нужно указать третий параметр, который фактически является сайтом, на котором работает веб-приложение:

WebConfigurationManager.OpenMappedWebConfiguration(webMappedFile, virtualPath, "MySite");

Итак, я попытался написать жесткий код, и это сработало.В любом случае это неприемлемо, поэтому мне нужно динамически предоставлять сайт в WebConfigurationManager, потому что я не знаю, на каком сайте будет работать служба в будущем.Кто-нибудь знает, как этого добиться?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

Как насчет Server.MachineName

0 голосов
/ 09 сентября 2010

Если вы выполняете этот код как часть обработки запроса, вы можете использовать:

Request.ServerVariables("server_name")

см .: http://msdn.microsoft.com/en-us/library/ms525396(VS.90).aspx

Редактировать на основе вашего комментария

Необходимым параметром является Имя сайта, а не имя компьютера, ваш код будет работать на многих компьютерах.Если код работает где-то там, где он больше не знает, что он находится на веб-сайте, ему трудно получить имя веб-сайта, на котором он работает.

У вас есть два варианта:

  • Отправьте имя в качестве параметра из слоя с httpconext
  • Не уверен, что это будет работать: но вы можете попробовать добавить ссылку на system.web в ваш проект.Он может скомпилироваться, но вы можете получить исключение нулевой ссылки при его запуске.Вероятно, стоит попробовать.
...