HttpContext.Current.Session, кажется, сбрасывается при внедрении в веб-часть Sharepoint - PullRequest
0 голосов
/ 03 марта 2020

У нас есть внутреннее веб-приложение ASP. NET - оно размещено на IIS, но встроено в Sharepoint через веб-части. Потребовались некоторые настройки, поэтому я сделал их и протестировал на IIS Express через Visual Studio; все хорошо.

Я пришел, чтобы развернуть приложение на недавно построенном сервере UAT (поскольку у этого приложения его еще не было), и там я столкнулся с проблемами. Определенные данные хранятся в HttpContext.Current.Session["__MySession__"] - например, элемент управления раскрывающегося списка может быть установлен на определенное значение, которое затем сохраняется в сеансе для сохранения на странице refre sh. Проблема в том, что при встраивании в Sharepoint , эта постоянство, похоже, не работает (и поэтому приложение ведет себя странно). Когда вы обращаетесь к приложению напрямую, переходя по его адресу, все в порядке.

Сейчас; В производственном веб-приложении эта проблема отсутствует , даже если она встроена в сайт UAT Sharepoint. В этом случае я почти уверен, что проблема заключается в том, как я настроил IIS. Я не вижу никакой разницы между серверами UAT и Prod, поэтому теряюсь в идеях о том, куда go отсюда.

Что может заставить приложение "забыть" свое состояние сеанса в таким образом? В частности, только когда встроено в Sharepoint?

1 Ответ

0 голосов
/ 04 марта 2020

Попробуйте установить следующий код в файле web.config:

<pages enableSessionState="true" enableViewState="true" enableViewStateMac="true" validateRequest="false" pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=*******" asyncTimeout="7">

и

<modules runAllManagedModulesForAllRequests="true">
  <remove name="Session" />
  <add name="Session" type="System.Web.SessionState.SessionStateModule" />
</modules>

Для более подробной информации см. Следующую ветку:

...