Почему "Файл не существует". исключение в Application_Error не имеет доступа к данным сеанса?
Объект HttpContext.Current.Session является нулевым, когда приложение выдает "Файл не существует". исключение в событии Application_Error.
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex.Message == "File does not exist." && HttpContext.Current.Session == null)
{
if (((System.Web.HttpException)(ex)).GetHttpCode() == 404)
{
LogtheException(Session["uname"].ToString());// Throwing the Exception Here
}
}
else
{
LogtheException(Session["uname"].ToString());
Server.Transfer(UrlMaker.ToError(ex.Message.ToString()));
}
}
Бросая исключение
Session state is not available in this context.
Почему объект HttpContext.Current.Session является нулевым, если путь к файлу css/image неверен. Вместо этого он должен генерировать FileNotFoundException, а также иметь доступ к данным сеанса.
1 ответ
Решение
Подобный вопрос был задан здесь
Запросы CSS и изображения обычно не нуждаются в доступе к сеансу, поэтому asp не загружает сеанс в память, и у вас нет доступа к нему в случае ошибки.