Azure Redis Cache 提供了一个会话状态提供程序,你可以使用其在缓存中(而不是内存中或在 SQL Server 数据库中)存储会话状态。要使用缓存会话状态提供程序,先首先配置缓存,然后使用 Redis 缓存会话状态 NuGet 包配置用于缓存的 ASP.NET 应用程序。

  1. 若要使用 Redis Cache Session State NuGet 程序包配置 Visual Studio 中的应用程序,请右键单击解决方案资源管理器中的项目,然后选择管理 NuGet 程序包

  2. 将 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>

    注释部分提供了属性示例和每个属性的演示设置。

  3. 为 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 会话状态提供程序通告上的原始博客中发布的通告。

  4. 请不要忘记将 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 实例中存储。

最新文章

  1. Unicode 和 UTF-8 有何区别?
  2. avalon2学习教程13组件使用
  3. EPANET中读取INPUT文件的函数文件——INPUT3.C
  4. Unable to automatically debug &quot;XXXXX“
  5. 一款jquery写出来的tab切换
  6. 【转】java list用法示例详解
  7. vsftp被动模式启用iptables访问设置
  8. 干货--微信公众平台客户端调试工具-初试WPF开发
  9. ABCpdf.NET中Rect,Bottom,Height的关系
  10. 关于jQuery.click()函数
  11. Windows 上安装 MySQL(8.0.11)
  12. Centos7安装Splash
  13. ArcGis连接oracle、oracle配置
  14. Boost中的网络库ASIO,nginx
  15. 从C++到java
  16. js ParseUrl
  17. 使用Markdown语法画流程图
  18. Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性
  19. pip install 安装提示unknown 包
  20. C# 压缩和解压文件(SharpZipLib)

热门文章

  1. VS2010保存时控件验证(用onclientclick事件) js脚本
  2. MyBatis的深入原理分析之1-架构设计以及实例分析
  3. 哪些因素影响ABBYY FineReader 12的识别质量
  4. Ckeditor的JS的加载和取值和赋值方法
  5. linux环境中,ssh登录报错,Permission denied, please try again.
  6. [原]pomelo开发环境搭建
  7. [OpenCV] Samples 15: Background Subtraction and Gaussian mixture models
  8. [转]Tomcat的部署
  9. HBase--阿里未来发展
  10. Oracle查询锁表和解锁