use*_*686 5 asp.net redis azure-caching
我正在尝试为 redis 实现 Azure 缓存来管理我的应用程序中的会话。这是在本地主机上工作。托管到 IIS 后,webconfig 文件中出现编译错误。
我在 azure 门户中为 redis 创建了 azure 缓存。我已经对代码进行了相应的更改。当我在本地主机上使用源代码运行时,它正在工作。托管到 IIS 后出现以下错误
"Provider 必须实现类
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>
Run Code Online (Sandbox Code Playgroud)
添加的模块如下
<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>
Run Code Online (Sandbox Code Playgroud)
我希望会话值存储在 redis 的 azure 缓存中。但是在 IIS 上托管后它不起作用。
您可以在 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" />
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,如果您有选择,请使用非 SSL 端口并查看是否有效。
对于可能遇到相同问题并且添加会话标记不起作用的任何人,您的应用程序池可能会配置为“经典”
从这篇文章来看, Microsoft.AspNet.SessionState.SessionStateModuleAsync似乎不支持经典应用程序池
您需要将其切换为“集成”,如下所示:
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |