我正在尝试为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 不支持经典应用程序池
您需要像这样将其切换为“集成”:
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/