銷售: 1-800-867-1380

Azure 角色中快取中的 ASP.NET 工作階段狀態提供者組態設定

更新日期: 2015年5月

note附註
如需為應用程式選擇正確 Azure 快取提供項目的相關指引,請參閱 我適合使用哪個 Azure 快取服務?

本主題涵蓋 ASP.NET Azure 工作階段狀態提供者的組態設定。這些設定是在 web.config 檔案中之 sessionState 元素的 providers 區段中指定。

 

屬性 描述

name (必要)

sessionState 元素所用來參照提供者的「易記」提供者名稱。

type (必要)

提供者的 .NET Framework 型別字串。必要值請參閱下面的附註。

cacheName (必要)

Azure 快取的名稱。這必須設定為 “default”

dataCacheClientName (選用)

dataCacheClient 組態區段中要使用之 dataCacheClients 區段的名稱。只有在 web.config 檔案中指定多個 dataCacheClient 區段時,此屬性才為必要。根據預設值,提供者會使用名稱為 “default”dataCacheClient 區段。

applicationName (選用)

在建立用於儲存輸出快取資料的快取金鑰時,提供者所使用的字串值。預設值是空字串。若未設定此屬性,提供者會使用 HttpRuntime.AppDomainAppId 值作為其內部使用之快取金鑰的一部分。與工作階段狀態功能不同,您不會想要在不同 ASP.NET 應用程式間共用輸出快取資料 (例如,/contoso 和 /AdventureWorks 無法共用輸出快取資料)。取而代之的是確保相同應用程式的不同實體例項全都可以存取相同的輸出快取資料。有兩種不統方式可以完成此動作:

  • 如果未明確設定 applicationName 提供者屬性,則在建構快取金鑰時,提供者會內部使用 HttpRuntime.AppDomainAppId。這表示相同應用程式的每個實體例項 (即主控 /contoso 應用程式的每個 Web 伺服器) 都必須以相同 Metabase 路徑安裝在 IIS 中。請參閱 http://support.microsoft.com/kb/325056,以了解 Metabase 路徑如何與 SQL Server 和跨處理序工作階段狀態提供者搭配使用。雖然工作階段狀態是不同的功能,但要讓 Metabase 路徑保持同步仍有相同問題。相同情形也發生在 web.config 檔案中尚未設定 applicationName 屬性時的輸出快取上。

  • 比較簡單的方式是讓相同 ASP.NET 應用程式的每個例項 (例如,在主控 /contoso 應用程式的每個 Web 伺服器上) 在 web.config 檔案中使用相同的 applicationName 屬性。這可讓相同應用程式的不同實體例項讀取和寫入相同的輸出快取資料。在此情況下,提供者不會在建構快取金鑰時使用 AppDomainAppId,因此不會有 Metabase 路徑不相符的風險。

useBlobMode (選用)

布林值,指定是否要以單一序列化項目的形式載入及儲存工作階段狀態資料。在這個版本中,此屬性必須設定為 true (預設值)。不支援使用值 false

nonInlinedAdditionalLifetime (不支援)

在這個版本中,不支援此屬性。

retryInterval (選用)

一段時間,在與快取通訊時若發生錯誤,每次重試之間要等候的時間長度。此值所使用的字串格式為 "HH:MM:SS"。根據預設值,提供者會休息一秒鐘。

retryCount (選用)

整數值,讓提供者知道要在快取通訊發生錯誤時重試幾次。請注意,並非所有操作都可重試。預設值為重試三次。提供者在每次重試之間會休息所設定 retryInterval 時間。

inlinedKeys (不支援)

在這個版本中,不支援此屬性。

maxInlinedStringLength (不支援)

在這個版本中,不支援此屬性。

note附註
type 屬性應設定為 “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”

<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">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

另請參閱

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2015 Microsoft