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

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


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

我希望将 session 值存储在Azure缓存上以供Redis使用。但是在IIS上托管后无法正常工作。

最佳答案

对于通过的任何人可能都有相同的问题,并且对于添加Session标记不起作用的人,您的应用程序池可能配置为“经典”
this post看来, Microsoft.AspNet.SessionState.SessionStateModuleAsync 不支持经典应用程序池
您需要像这样将其切换为“集成”:
asp.net - 如何修复 &#34;Provider must implement the class &#39; System.Web.SessionState.SessionStateStoreProviderBase&#39;错误asp.net-LMLPHP
Microsoft official application pools documentation

关于asp.net - 如何修复 "Provider must implement the class ' System.Web.SessionState.SessionStateStoreProviderBase'错误asp.net,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56931949/

10-17 01:42