Просто поместить его в конфигурационный файл где-то так, как это обычно делается. Просто убедитесь, что вы:
Получил его. Довольно глупый, на самом деле. Это работало после того, как я удалил & добавленный SessionStateModule как так:
<configuration>
...
<system.webServer>
...
<modules>
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
...
</modules>
</system.webServer>
</configuration>
Просто добавление это не будет работать, так как "Сессия" должна была быть уже определена в machine.config
.
Теперь, интересно - ли это обычная вещь сделать. Это, конечно, не кажется таким, так как это кажется настолько сырым...
Просто добавьте атрибут runAllManagedModulesForAllRequests="true"
к system.webServer\modules
в web.config.
Этот атрибут включен по умолчанию в MVC и Динамических проектах Данных.
Кажется, что Вы забыли добавлять свой адрес сервера состояния в конфигурация файл.
<sessionstate mode="StateServer" timeout="20" server="127.0.0.1" port="42424" />
Что сказал @Bogdan Maxim. Или изменитесь для использования InProc, если Вы не используете внешний сервер состояния сессии.
<sessionState mode="InProc" timeout="20" cookieless="AutoDetect" />
Взгляд здесь для большего количества информации о директиве SessionState.
Я думаю, что эта часть кода вносит изменения в контекст.
Page page = BuildManager.CreateInstanceFromVirtualPath(
m_VirtualPath,
typeof(Page)) as Page;// IHttpHandler;
Также эта часть кода бесполезна:
if (page != null)
{
return page;
}
return page;
Это будет всегда возвращаться, страница увядают, это является пустым или нет.
Раздел конфигурации кажется звуковым, поскольку он работает если, когда к страницам обычно получают доступ. Я попробовал другие предложенные конфигурации, но проблема все еще там.
я сомневаюсь, что проблема находится в поставщике Сессии, так как она работает без маршрутизации.
Хорошее задание! У меня была та же самая проблема. Добавление и удаление модуля Сессии работали отлично на меня также. Это однако не возвращало HttpContext. Текущий. Пользователь, таким образом, я попробовал Ваш небольшой прием модулем FormsAuth и конечно же, который сделал это.
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
лучшим решением является
runAllManagedModulesForAllRequest - умная вещь для удаления и повторной установки модуля сеанса.
alk.