asp.net - 如何解决“提供者必须实现类'System.Web.SessionState.SessionStateStoreProviderBase'错误asp.net
问题描述
我正在尝试为 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 上托管后它不起作用。
解决方案
你可以在 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 端口,看看是否有效。
推荐阅读
- php - 如何使用php usort按最大值对多维数组进行排序?
- c# - 如何从 Xamarin 的 Sqlite 和列表中删除项目
- javascript - 我需要 jQuery 才能让 Google 跟踪代码管理器工作吗?与 AngularJs 一起使用
- java - 2个类似的java枚举和一个方法,决定从哪个枚举中选择值
- java - 在 java 中发送之前的 SAML 请求和签名请求
- yii2 - 使用yii2的家谱图
- laravel - 用不同的数据更新同一张表上的多条记录
- ruby - batch file - running an installer that appends to the PATH and the running that new application from the bat
- javascript - 如何使用javascript修剪单词之间和逗号后的空格
- e2e-testing - 为什么我无法在 Chrome (cypress) 中以新问题形式显示可用的里程碑?