【问题标题】:How to fix "Provider must implement the class 'System.Web.SessionState.SessionStateStoreProviderBase' error asp.net如何解决“提供者必须实现类'System.Web.SessionState.SessionStateStoreProviderBase'错误asp.net
【发布时间】:2019-11-17 19:02:28
【问题描述】:

我正在尝试为 redis 实现 Azure 缓存以管理我的应用程序中的会话。这是在本地主机上工作。托管到 IIS 后,在 webconfig 文件中出现编译错误。

我在 azure 门户中为 redis 创建了 azure 缓存。我已经对代码进行了相应的更改。当我在本地主机上使用源代码运行时,它正在工作。托管到 IIS 后出现以下错误

"提供者必须实现类
System.Web.SessionState.SessionStateStoreProviderBase

<sessionState mode="Custom" customProvider="MySessionStateStore">
      <providers>
        <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="myhostname" accessKey="Key1" ssl="true" />
      </providers>    
    </sessionState>

模块添加如下

<system.webServer>
    <modules>
      <remove name="Session" />
      <add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
    </modules>
  </system.webServer>

我希望会话值存储在 redis 的 azure 缓存中。但是在 IIS 上托管后它不起作用。

【问题讨论】:

  • 您在部署到 IIS 时是否正在转换您的 web.config?
  • @DdW - 我遇到了同样的问题 - 具有上述配置,并且在部署到 Azure 应用服务时通过 octopus deploy 转换 web.config
  • @anD666 转换时要小心,尤其是模块部分很棘手。查看转换后的最终结果,并与本地版本进行比较。
  • @DdW - 转换没有触及模块部分。它只是添加会话状态部分。
  • @anD666 你也需要模块部分...

标签: asp.net redis azure-caching


【解决方案1】:

对于任何路过的人可能有相同的问题并且添加 Session 标记不起作用,您的应用程序池可能配置为“经典”

this post 看来,Microsoft.AspNet.SessionState.SessionStateModuleAsync 不支持经典应用程序池

您需要像这样将其切换为“集成”:

Microsoft official application pools documentation

【讨论】:

    【解决方案2】:

    你可以在 app.config/web.config 下试试这个

    <modules>
    <remove name="Session" />
    <add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync,Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
    

    如果这不起作用,如果您有一个选项,请使用非 SSL 端口,看看是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2015-10-15
      • 2019-08-13
      相关资源
      最近更新 更多