У меня есть веб-приложение Legacy, которое отлично работает в VS 2010 с пакетом обновления 1. Я пытаюсь перенести то же решение на VS 2017. Когда я открываю решение в 2017 году и пытаюсь запустить его, появляется Application_Start
там, после того как он переходит к Application_EndRequest
, он никогда не попадает на событие Session_Start
.
Я получаю запрос Application_EndRequest:
Session state is not available in this context. at System.Web.HttpApplication.get_Session()
Мое веб-приложение использует архитектуру MVC
.
Я попытался включить сеанс в webconfig
, но все еще не повезло.
<system.web>
<pages enableSessionState="true" />
</system.web>
версия веб-страницы с использованием
<add key="webpages:Version" value="2.0.0.0" />
Целевая структура
<compilation debug="true" targetFramework="4.0">
Используется версия Mvc:
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Note 1 :
Я уже прошел через большинство вопросов переполнения стека, связанных с этой проблемой, и ничто не решает мою проблему.
Обновление:
protected void Application_Start()
{
AutoMapperConfiguration.Configure();
AreaRegistration.RegisterAllAreas();
}
void Application_EndRequest(object sender, EventArgs e)
{
//no code inside application end request.
}
protected void Session_Start(Object sender, EventArgs e)
{
try
{
string sessionId = Session.SessionID;
bool dbcheck = CheckDBConnection();
}
catch (Exception ex)
{
//handle execption
}
}
Примечание 2. Сам по себе session_start
не работает, и я вообще не оцениваю сеанс в application_start
.Я прокомментировал весь код внутри запуска приложения, но все еще возникает та же проблема.
Я пытался открыть то же самое решение из VS 2015, все еще то же поведение, что оно вызывает событие Application_End, и ошибка вОтправитель объекта
Session = '((System.Web.HttpApplication)sender).Session' threw an exception of type 'System.Web.HttpException'
Может кто-нибудь помочь мне решить то же самое?Любая помощь будет оценена.