HttpContext.Current.Session在嵌入Sharepoint Web部件时似乎已重置



我们有一个内部ASP.NET web应用程序-它由IIS托管,但通过web部件嵌入Sharepoint。它需要一些调整,所以我进行了调整,并通过Visual Studio在IIS Express上进行了测试;一切都很好。

我是来把这个应用程序部署到一个新构建的UAT服务器上的(因为这个应用程序没有(,在那里我遇到了问题。某些数据存储在HttpContext.Current.Session["__MySession__"]中——例如,下拉控件可能被设置为特定值,然后存储在会话中,以在页面刷新期间保持不变。问题是当嵌入Sharepoint时,这种持久性似乎不起作用(因此应用程序的行为很奇怪(。当您通过导航到应用程序的地址直接访问该应用程序时,一切都很好。

现在;生产Web应用程序没有存在此问题,即使嵌入到UAT Sharepoint网站中也是如此。在这种情况下,我非常确定问题在于我如何配置IIS。不过,我看不出UAT和Prod服务器之间有什么区别,所以我不知道从这里开始该怎么办。

是什么原因导致应用程序以这种方式"忘记"其会话状态?尤其是嵌入Sharepoint时?

尝试在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>

您可以参考以下线程了解更多详细信息:

  • https://sharepoint.stackexchange.com/questions/83784/session-and-httpcontext-not-available-in-web-part
  • https://social.technet.microsoft.com/Forums/msonline/en-US/3145fd29-2315-42f7-8f9d-cf6d52dc3c95/enabling-session-state-in-sharepoint-2010?forum=sharepointgeneralprevious

最新更新