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

Asp.net HttpContext.Current.Session在嵌入Sharepoint Web部件时似乎被重置,asp.net,session,iis,sharepoint,httpcontext,Asp.net,Session,Iis,Sharepoint,Httpcontext,我们有一个内部ASP.NET web应用程序-它由IIS托管,但通过web部件嵌入Sharepoint。它需要一些调整,所以我做了一些调整,并通过VisualStudio在IIS Express上进行了测试;一切都很好 我是来将这个应用程序部署到一个新构建的UAT服务器上的(因为这个应用程序没有一个现有的),在那里我遇到了问题。某些数据存储在HttpContext.Current.Session[“\uuuu MySession\uuuu”]中-例如,可以将下拉控件设置为特定值,然后将其存储在会

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

我是来将这个应用程序部署到一个新构建的UAT服务器上的(因为这个应用程序没有一个现有的),在那里我遇到了问题。某些数据存储在
HttpContext.Current.Session[“\uuuu MySession\uuuu”]
中-例如,可以将下拉控件设置为特定值,然后将其存储在会话中以在页面刷新期间保持。问题是,当嵌入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">




  • 谢谢-不幸的是,我已经尝试了这些方法,但没有成功。@DanScally您的应用程序是在相同的环境中托管还是在不同的环境中托管?Web应用程序托管在Sharepoint网站的完全不同的服务器上。
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="Session" />
      <add name="Session" type="System.Web.SessionState.SessionStateModule" />
    </modules>