首页 > 解决方案 > 提供者必须实现类“System.Web.SessionState.SessionStateStoreProviderBase”

问题描述

我正在尝试使用 Redis 会话状态集成托管在 Azure 应用服务中的 .net 4.6.2 MVC 应用程序。

我已经通过 nuget 安装了这些软件包,并将以下项目添加到 web.config

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

根据 Google 结果答案添加了以下模块...

<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>

我仍然收到一个配置错误,说提供者必须实现类“System.Web.SessionState.SessionStateStoreProviderBase”,我看不出还有什么遗漏。

在通过 Octopus Deploy 部署包期间正在转换 web.config,但看不到生成的配置有任何问题。

有没有人对如何解决这个问题有任何想法?

谢谢

标签: asp.net-mvcredisazure-caching

解决方案


当仅启用 SSL 时,我在我们的实现中遇到了类似的问题。切换到非 SSL 端口后,它开始工作。我不确定为什么会这样。如果您可以选择使用非 SSL 端口,不妨试一试

还要确保在配置中添加此条目

<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" />

推荐阅读