【问题标题】:HttpContext.Current.Session seems to be reset when embedded in Sharepoint Web Part嵌入 Sharepoint Web 部件时,HttpContext.Current.Session 似乎被重置
【发布时间】:2020-06-16 00:37:41
【问题描述】:

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

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

现在;即使嵌入到 UAT Sharepoint 站点中,生产 Web 应用程序没有有这个问题。既然如此,我很确定问题在于我如何配置 IIS。不过,我看不出 UAT 和 Prod 服务器之间有什么区别,所以我不知道从哪里开始。

什么会导致应用程序以这种方式“忘记”其会话状态?尤其是仅在嵌入 Sharepoint 时?

【问题讨论】:

    标签: asp.net session iis sharepoint httpcontext


    【解决方案1】:

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

    您可以参考下面的帖子了解更多详情:

    【讨论】:

    • 谢谢 - 不幸的是我已经尝试过那些没有成功。
    • @DanScally 您的应用程序是托管在相同的环境中还是不同的环境中?
    • Web 应用程序托管在与 Sharepoint 站点完全不同的服务器上。
    猜你喜欢
    • 2013-01-22
    • 2012-03-24
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多