Azure Redis 缓存的 ASP.NET 会话状态提供程序
2024-08-24 01:26:47
Azure Redis Cache 提供了一个会话状态提供程序,你可以使用其在缓存中(而不是内存中或在 SQL Server 数据库中)存储会话状态。要使用缓存会话状态提供程序,先首先配置缓存,然后使用 Redis 缓存会话状态 NuGet 包配置用于缓存的 ASP.NET 应用程序。
- 若要使用 Redis Cache Session State NuGet 程序包配置 Visual Studio 中的应用程序,请右键单击解决方案资源管理器中的项目,然后选择管理 NuGet 程序包。
- 将 RedisSessionStateProvider 键入联机搜索文本框中,从结果中选择,单击安装。
备注 Redis Session State Provider NuGet 程序包对 StackExchange.Redis.StrongName 程序包有依赖。如果 StackExchange.Redis.StrongName 程序包未在项目中显示,其将安装。请注意,除具有强名称 StackExchange.Redis.StrongName 程序包,还有 StackExchange.Redis 非强名称版本。如果你的项目使用非强命名 StackExchange redis 版本,在安装 Redis Session State Provider NuGet 程序包前后,你必须将其卸载,否则你将获取与项目中冲突的名称。有关这些程序包的更多信息,请参阅 配置 Azure Redis Cache 的 .NET 缓存客户端。 NuGet 程序包下载并添加所需的程序集引用,然后添加以下会话到 web.config 文件,该文件包含 ASP.NET 应用程序所需的配置以使用 Redis Cache 会话状态提供程序。
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<!--
<add name="MySessionStateStore"
host = "127.0.0.1" [String]
port = "" [number]
accessKey = "" [String]
ssl = "false" [true|false]
throwOnError = "true" [true|false]
retryTimeoutInMilliseconds = "0" [number]
databaseId = "0" [number]
applicationName = "" [String]
connectionTimeoutInMilliseconds = "5000" [number]
operationTimeoutInMilliseconds = "5000" [number]
/>
-->
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false" />
</providers>
</sessionState>注释部分提供了属性示例和每个属性的演示设置。
- 为 Azure Management Portal Preview 缓存边栏中的属性配置该值,并配置所需的其他值。
备注 有关访问缓存属性的说明,请参阅 Review cache settings。 host
– 指定缓存端点。port
– 根据ssl
设置,使用非 SSL 端口或 SSL 端口。accessKey
– 使用缓存的主密钥或次密钥。ssl
– 如果你想保护缓存/客户端与 SSL 的通信,true;否则为 false。确保指定正确的port
。重要提示 默认情况下,对新缓存禁用了非 SSL 端口。将此设置指定为 true 以使用 SSL 端口。有关启用非 SSL 端口的详细信息,请参阅在 Azure Redis Cache 中配置缓存主题中的Access Ports。 throwOnError
– 如果由于故障而引发异常,则为 true;如果希望操作失败而不提示,则为 false。通过选中Microsoft.Web.Redis.RedisSessionStateProvider.LastException
属性检查故障。默认值为 true。retryTimeoutInMilliseconds
– 在此期间(以毫秒计)将重试失败的操作。第一次重试发生 20 毫秒后,每秒重试一次,直到retryTimeoutInMilliseconds
间隔期满。此间隔后立即重试最后一次操作。如果操作仍失败,根据throwOnError
设置,将异常情况返回到调用程序。默认值为0
,这意味没有重试。databaseId
– 指定用于缓存输出数据的数据库。如果未指定,则使用默认值0
。applicationName
– 密钥在 Redis 中存储为<AppName>_<SessionId>_Data
。这将使多个应用程序共享同一个密钥。此参数为可选,如果不提供,就使用默认值。connectionTimeoutInMilliseconds
– 此设置允许你覆盖 StackExchange.Redis 客户端中的connectTimeout
设置。如果未指定,则使用5000
的默认connectTimeout
设置。有关详细信息,请参阅 TechNet 上的 StackExchange.Redis 配置模型。operationTimeoutInMilliseconds
– 此设置允许你覆盖 StackExchange.Redis 客户端中的syncTimeout
设置。如果未指定,则使用1000
的默认syncTimeout
设置。有关详细信息,请参阅 TechNet 上的 StackExchange.Redis 配置模型。
有关这些属性的详细信息,请参阅 适用于 Redis 的 ASP.NET 会话状态提供程序通告上的原始博客中发布的通告。
- 请不要忘记将 web.config 文件中的标准
InProc
会话状态提供程序注释掉。<!-- <sessionState mode="InProc"
customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider"
type="System.Web.Providers.DefaultSessionStateProvider,
System.Web.Providers, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" />
</providers>
</sessionState> -->
一旦执行这些步骤,将配置应用程序以使用 Redis 缓存会话状态提供程序。在你使用应用程序中的会话时,其将在 Azure Redis Cache 实例中存储。
最新文章
- Unicode 和 UTF-8 有何区别?
- avalon2学习教程13组件使用
- EPANET中读取INPUT文件的函数文件——INPUT3.C
- Unable to automatically debug ";XXXXX“
- 一款jquery写出来的tab切换
- 【转】java list用法示例详解
- vsftp被动模式启用iptables访问设置
- 干货--微信公众平台客户端调试工具-初试WPF开发
- ABCpdf.NET中Rect,Bottom,Height的关系
- 关于jQuery.click()函数
- Windows 上安装 MySQL(8.0.11)
- Centos7安装Splash
- ArcGis连接oracle、oracle配置
- Boost中的网络库ASIO,nginx
- 从C++到java
- js ParseUrl
- 使用Markdown语法画流程图
- Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性
- pip install 安装提示unknown 包
- C# 压缩和解压文件(SharpZipLib)
热门文章
- VS2010保存时控件验证(用onclientclick事件) js脚本
- MyBatis的深入原理分析之1-架构设计以及实例分析
- 哪些因素影响ABBYY FineReader 12的识别质量
- Ckeditor的JS的加载和取值和赋值方法
- linux环境中,ssh登录报错,Permission denied, please try again.
- [原]pomelo开发环境搭建
- [OpenCV] Samples 15: Background Subtraction and Gaussian mixture models
- [转]Tomcat的部署
- HBase--阿里未来发展
- Oracle查询锁表和解锁