Объект запроса в событии Application_Start - PullRequest
7 голосов
/ 22 апреля 2011

В настоящее время мы используем эту строку кода для получения текущего URL приложения в событии Application_Start.

string sApplicationURL = HttpContext.Current.Request.Url.Scheme + "://" 
                         + HttpContext.Current.Request.Url.Authority 
                         + HttpContext.Current.Request.ApplicationPath;

Я только недавно обнаружил, что в IIS7.0 объект Request больше не доступен при возникновении события Application_Start.

Есть ли другой способ получить URL текущих приложений без использования объекта Request?

Спасибо

Ответы [ 2 ]

11 голосов
/ 22 апреля 2011

Посмотрите на это: http://mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx

Таким образом, ошибка возникает из-за того, что контекст запроса больше не доступен для события Application_Start. В этом блоге изложены два варианта решения этой ошибки:

1) Измените свой код на работу без запроса, или 2) Измените приложение для работы в классическом режиме (не рекомендуется).

Чтобы получить ApplicationPath, используйте HttpRuntime.AppDomainAppVirtualPath .

0 голосов
/ 23 апреля 2011

В Microsoft есть статья «все в одном» обо всех критических изменениях, включая эту,

http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

Да, его содержание каким-то образом взято из http://mvolo.com (и причина проста).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...