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 实例中存储。

Azure Redis 缓存的 ASP.NET 会话状态提供程序的更多相关文章

  1. Azure Redis 缓存使用注意事项与排查问题文档整理

    StackExchange.Redis 使用名为 synctimeout 的配置设置进行同步操作,该设置的默认值为 1000 毫秒. 如果同步调用未在规定时间内完成,StackExchange.Red ...

  2. 【Azure Redis 缓存 Azure Cache For Redis】Azure Redis由低级别(C)升级到高级别(P)的步骤和注意事项, 及对用户现有应用的潜在影响,是否需要停机时间窗口,以及这个时间窗口需要多少的预估问题

    问题描述 由于Azure Redis的性能在不同级别表现不同,当需要升级/缩放Redis的时候,从使用者的角度,需要知道有那些步骤? 注意事项? 潜在影响?停机事件窗口? 升级预估时间? 解决方案 从 ...

  3. Azure Redis Cache作为ASP.NET 缓存输出提供程序

    前一篇文章<Azure Redis Cache作为ASP.NET Session状态提供程序 >我们已经知道如何将ASP.NET应用程序Session存储在Redis Cache中,这里我 ...

  4. Azure Redis Cache作为ASP.NET Session状态提供程序

    从上一篇博客<使用Azure Redis Cache>我们已经可以创建并使用Redis Cache为我们服务了. 作为Web开发者,我们都知道Session状态默认是保存在内存中的,它的优 ...

  5. 【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)

    问题描述 Azure Redis和所有的Redis服务一样,可以让你保留存储在Redis中的数据.以防万一在Redis服务器出现故障的时候能尽可能小的减少数据的损失.在Azure Redis服务中,默 ...

  6. 【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功

    问题描述 在正常使用Azure Redis的服务中,突然发现Redis 的CPU达到了100%, 正常的使用中发现性能问题严重.从Redis的门户图表中,观察到CPU, Connection,Lent ...

  7. 【Azure Redis 缓存】Azure Redis功能性讨论

    关于使用Azure Redis服务在以下九大方面的功能性的解说: 高可用 备份可靠性 配置自动化 部署多样性 快速回档功能 数据扩容 SLA稳定性 数据安全性 监控系统 一:高可用 Azure Cac ...

  8. 【Azure Redis 缓存】Azure Redis 功能性讨论二

    继承上一次讨论了Azure Redis的可用性,可靠性,稳定性,安全性,监控方面的九大功能点.详情可回顾文章:[Azure Redis 缓存]Azure Redis功能性讨论 这次我们继续讨论Azur ...

  9. 【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢?

    问题描述 在自建的Redis服务中,可以通过 config set requirepass <Password> 设置Redis的登录密码,然后使用auth 命令输入密码.操作命令如下: ...

随机推荐

  1. Microsoft Word 2010/2013 无法创建工作文件 请检查临时环境变量

    解决方案:重置IE缓存文件夹

  2. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置

    通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置 配置H ...

  3. 关于Struts2的多文件上传

    之前写过一篇文章,关于Struts2文件上传:http://www.cnblogs.com/lichenwei/p/3927964.html 现在来说下多文件上传,其实就把上传文件当成是一个数组去处理 ...

  4. SharePoint 使用ECMAscript对象模型来操作Goup与User

    这里总结了关于使用ECMAscript对象模型来操作Goup与User的常用情况,内容如下:     1.取得当前Sharepoint网站所有的Groups     2.获取当前登录用户的Title与 ...

  5. 我的Oracle控制台创建数据库的工具

    Oracle windows 11.2.0.4 在控制台cmd下的创建工具,不依赖于服务和监听 工具及下载:Oracle控制台工具 注意:其中的 “seeddatabase.gbk.7z”文件为从Or ...

  6. 史上最强大的python selenium webdriver的包装

    1.之前已经发过两次使用单浏览器了,但是这个最完美,此篇并没有使用任何单例模式的设计模式,用了实例属性结果缓存到类属性. 2.最简单的控制单浏览器是只实例化一次类,然后一直使用这个对象,但每个地方运行 ...

  7. C#WinForm窗体事件执行次序

    当 Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件:         System.Windows.Forms.Control.HandleCreated         ...

  8. Core Java笔记

    前言 一·基础知识 二·定义,关键字和类型 三·表达式和控制流 四·数组 五·对象和类 六·高级语言特性 七·异常 八·图形用户接口 九·AWT(Abstract Window Toolkit) 事件 ...

  9. java命令启动jar包

    本人对这些命令也是一知半解,记录备用. 1. 使用java命令行执行java文件 # 设置命令窗口标题 title test1 # 开启输出 @echo on # 设置环境变量JAVA_HOME se ...

  10. Lua协程-测试3

    print("Lua 协程测试3") -- 实现消费者-生产者关系(生产一个就消费一个) count = -- 生产总数 -- 生产者 local newProductorCo = ...