ASP.NET 会话状态提供程序的配置设置(Azure 托管缓存服务)
重要
Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪个 Azure 缓存产品/服务适合我?
本主题介绍用于 ASP.NET 的 Azure 托管缓存服务 会话状态提供程序的配置设置。 这些设置是在 web.config 文件中 sessionState 元素的 providers 节中指定的。
会话状态配置设置
属性 | 说明 |
---|---|
所需的名称 () |
sessionState 元素用来引用提供程序的提供程序的“友好”名称。 |
类型 (必需) |
该提供程序的 .NET Framework 类型的字符串。 有关所需的值,请参阅下面的说明。 |
cacheName (所需的) |
Azure 缓存的名称。 此属性必须设置为 |
dataCacheClientName (可选) |
要从 dataCacheClients 配置部分使用的 dataCacheClient 节的名称。 只有在web.config文件中指定了多个 dataCacheClient 节时,才需要此属性。 默认情况下,提供程序将使用名为 |
applicationName (可选) |
提供程序在创建用于存储输出缓存数据的缓存密钥时使用的字符串值。 默认值为空字符串。 如果未设置此属性,提供程序将使用 HttpRuntime.AppDomainAppId 的值作为它在内部使用的缓存键的一部分。 与会话状态功能不同的是,你不需要在不同的 ASP.NET 应用程序之间共享输出缓存数据(例如,/contoso 和 /AdventureWorks 无法共享输出缓存数据), 而是需要确保同一应用程序的不同物理实例均具有访问相同输出缓存数据的权限。 可以通过下面两种方法完成此任务:
|
useBlobMode (可选) |
布尔值,该值指定是否将会话状态数据作为单个序列化的 BLOB 进行加载和存储。 在本版本中,此属性必须设置为 |
nonInlinedAdditionalLifetime (不支持的) |
本版本不支持此属性。 |
retryInterval (可选) |
当与缓存之间的通信发生错误时,每两次重试之间须等待的时间跨度。 此值所使用的字符串格式为 |
retryCount (可选) |
一个整数值,告知提供程序在与缓存的通信失败时的重试次数。 请注意,并非所有操作都可以重试。 默认值为 3 次重试。 每次重试尝试之间配置的 retryInterval 时间的提供程序会休眠。 |
inlinedKeys (不支持的) |
本版本不支持此属性。 |
maxInlinedStringLength (不支持) |
本版本不支持此属性。 |
注意
类型属性应设置为 “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”
。
示例
<!-- Non-cache sections omitted for space -->
<configuration>
<configSections>
<section name="dataCacheClients"
type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
allowLocation="true"
allowDefinition="Everywhere" />
<section name="cacheDiagnostics"
type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon"
allowLocation="true"
allowDefinition="Everywhere" />
</configSections>
<system.web>
<!-- Azure Caching session state provider -->
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
<providers>
<add name="AFCacheSessionStateProvider"
type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
cacheName="default"
dataCacheClientName="default"
applicationName="AFCacheSessionState"/>
</providers>
</sessionState>
</system.web>
<dataCacheClients>
<dataCacheClient name="default">
<!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
<!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
<autoDiscover
isEnabled="true"
identifier="[Cache role name or Service Endpoint]" />
<!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
<!--Use this section to specify security settings for connecting to your cache.
This section is not required if your cache is hosted on a role that is a part
of your cloud service. -->
<!--<securityProperties mode="Message" sslEnabled="false">
<messageSecurity authorizationInfo="[Authentication Key]" />
</securityProperties>-->
</dataCacheClient>
<cacheDiagnostics>
<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
</cacheDiagnostics>
</dataCacheClients>
</configuration>
注意
cacheDiagnostics
部分仅由缓存 NuGet 程序包添加到 ASP.NET Web 角色客户端。 有关详细信息,请参阅关于 Azure 托管缓存服务的 ClientDiagnosticLevel。