Запрос не доступен в этом контексте -> В Global.asax -> что заменить - PullRequest
3 голосов
/ 13 октября 2011

почему в следующей строке есть ошибка в global.asax:

string RelativeFilePath = "~/" + (AbsoluteFilePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty)).Replace("\\", "/");  

Ошибка:

Запрос недоступен в этом контексте

какая замена?

заранее спасибо

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Если вы размещаете свое приложение в интегрированном конвейере IIS7, объекты HttpContext недоступны в Application_Start.Для вашего сценария вы можете сделать это вместо:

string relativeFilePath = "~/" + AbsoluteFilePath
    .Replace(HostingEnvironment.ApplicationPhysicalPath, String.Empty)
    .Replace("\\", "/"); 
0 голосов
/ 13 октября 2011

В IIS7 или выше был введен интегрированный конвейер, и некоторые правила изменились. Вы не можете получить доступ к текущему HttpContext в Application_Start. Вот больше информации.

Чтобы процитировать, вот ваши варианты:

Итак, что это значит для вас?

По сути, если вы получаете доступ к контексту запроса в Application_Start, у вас есть два варианта:

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

Поскольку вы только получаете физический путь к приложению, я бы использовал встроенный режим и просто изменил ваш код.

...