【问题标题】:Configure Redis Session State on Azure在 Azure 上配置 Redis 会话状态
【发布时间】:2015-01-14 16:32:42
【问题描述】:
Redis 会话状态提供程序在本地与我的 ASP.Net 站点和在 Azure 中与我的 Azure 网站一起正常工作。但是我有一个关于配置的问题......
有没有办法使用网站属性屏幕中的应用程序设置(或配置字符串)部分将配置存储在 Azure 网站本身?
这将非常方便,因为这意味着我在发布时不必修改 web.config 文件。我已经为连接字符串和应用程序设置执行此操作,但我只是在 web.config 文件的 <system.web> 节点中看不到任何方法,例如 <sessionState> 节点。
【问题讨论】:
标签:
azure
redis
session-state-provider
【解决方案1】:
没有办法通过使用 web.config 文件来更改基于提供程序的会话状态的行为。
您可以编写自己的提供程序并修改它从哪里找到连接详细信息,以便您可以在 web.config 以外的其他地方发布这些详细信息,但这不是标准行为。
【解决方案2】:
This question 有办法完成这项工作。
<appSettings>
<add key="REDIS_CONNECTION_STRING" value="[your dev connection string]" />
</appSettings>
<system.web>
<sessionState mode="Custom" customProvider="RedisProvider">
<providers>
<add name="RedisProvider" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="REDIS_CONNECTION_STRING" />
</providers>
</sessionState>
</system.web>
然后,在门户中,您可以使用正确的连接字符串创建名为“REDIS_CONNECTION_STRING”的应用设置。您不能使用 web.config 或 azure 门户的连接字符串部分。它必须是应用程序设置。不知道为什么,但连接字符串只使用 web.config 中的任何内容,而不是用门户中的内容替换。