У меня есть приложение ASP .Net, работающее на IIS7. Я использую текущий URL-адрес, на котором работает сайт, чтобы установить некоторые статические свойства для класса в моем приложении. Чтобы сделать это, я получаю имя домена с помощью этого (insde статического конструктора класса):Как получить доменное имя хоста в ASP.NET без использования HttpContext.Current.Request?
var host = HttpContext.Current.Request.Url.Host;
И это прекрасно работает на моем Dev машине (Windows XP/Кассине). Однако, когда я развертываю в IIS7, я получаю исключение: «Запрос недоступен в этом контексте».
Я предполагаю, что это связано с тем, что я использую этот код в статическом конструкторе объекта, который запускается в IIS до того, как будут поступать какие-либо запросы; и Cassini не запускает статический конструктор до тех пор, пока не произойдет запрос. Теперь мне изначально не нравилась идея вытащить доменное имя из запроса именно по этой причине, но это было единственное место, где я нашел его =)
Итак, кто-нибудь знает о другом месте, которое я могу получить имя домена хоста? Я предполагаю, что ASP .Net должен знать об этом на каком-то уровне независимо от HttpRequests, я просто не знаю, как получить к нему доступ.
Ах, да, то, что я на самом деле должен делать, это не инициализация этого материала в статическом конструкторе. На самом деле, если я хочу быть в безопасности, я бы даже не хотел, чтобы мои ценности были статическими вообще - я должен искать их снова по каждому запросу, если я получаю запросы от нескольких доменов (в моем случае я выиграл " t, но хорошо знать об этом). Спасибо за помощь - к сожалению, теперь мне нужно реорганизовать больший кусок этого унаследованного приложения, чем мне хотелось бы =) – Badjer