匯出 (0) 列印
全部展開

Azure 快取的工作階段狀態提供者

更新日期: 2010年7月

note附註
如需為應用程式選擇正確 Azure 快取提供項目的相關指引,請參閱 Azure 快取常見問題集

工作階段狀態提供者是適用於 ASP.NET 應用程式的跨處理序儲存機制。此提供者可讓您在 快取中儲存工作階段狀態,而非在記憶體中或 SQL Server 資料庫中儲存。

如需工作階段狀態快取的範例,請參閱Caching 工作階段狀態和輸出 Caching 範例 (英文)。

工作階段狀態提供者針對以前的 ASP.NET 工作階段狀態提供者做了以下改善:

  • 針對工作階段狀態序列化內部使用 NetDataContractSerializer 類別。

  • 可在不同 ASP.NET 應用程式間共用工作階段狀態。

  • 支援同時存取多個讀取器和單一寫入器的相同工作階段狀態集。

  • 可以透過快取用戶端屬性使用壓縮功能。

使用 NetDataContractSerializer 類別進行序列化可以支援更為廣泛的可序列化型別。包括支援二進位檔可序列化型別。

提供者可支援讓不同 ASP.NET 應用程式讀取及寫入相同的工作階段狀態資料。例如,假設有個提供者有兩個不同的 ASP.NET 網站:/contoso 和 /adventureworks。可以在每個 Web 應用程式中設定工作階段狀態提供者,使其指向快取叢集中相同的工作階段狀態存放區。因此,對於任何給定的工作階段識別碼,這兩個應用程式都會讀取和寫入相同的工作階段資料。

工作階段狀態提供者支援同時存取多個讀取器和單一寫入器的相同工作階段狀態集。此案例中的讀取器會定義為標示使用 ReadOnly 工作階段狀態的頁面。如果大多數的應用程式工作階段狀態存取模式只需要唯讀存取工作階段狀態,廣泛使用 AJAX 回呼的應用程式將不會有伺服器端的要求佇列。

  1. 首先,設定與 ASP.NET 提供者搭配使用的快取。您可以透過共置拓撲專用角色來主控 快取。

  2. 使用 NuGet 來新增 快取 支援至 Visual Studio 中的 ASP.NET 專案。如需相關指示,請參閱<作法:準備 Visual Studio 來使用角色中快取 (Azure 快取)>。

    Important重要事項
    這些步驟需要最新的 NuGet 封裝管理員 (版本 2.1.31002.9028 或更高)。若要安裝最新的 NuGet 封裝管理員,請前往 http://go.microsoft.com/fwlink/?LinkId=240311

  3. 移除設定工作階段狀態快取的任何現有的 sessionState 元素。請勿移除由 NuGe 封裝新增的已註解 sessionState 區段。

  4. 在 web.config 檔案中,取消註解 sessionState 區段。

        <!-- 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>
    

以下清單提供會影響輸出快取提供者的選擇性設定變更。

  • 透過 add 元素的 cacheName 屬性來變更目標具名快取。

  • 透過 add 元素的 dataCacheClientName 屬性來變更快取用戶端設定來源。將此屬性設為 web.config 檔案中的現有 dataCacheClient 區段。

  • 在關聯的 dataCacheClient 區段中變更設定,以修改快取用戶端的行為。例如,透過 isCompressionEnabled 屬性啟用壓縮功能。

    <dataCacheClient name="default" isCompressionEnabled="true">
    
    如需可用組態選項的清單,請參閱 角色中快取用戶端組態設定 (Web.config)。請注意 快取 的 ASP.NET 提供者不支援二進位或自訂序列化類型。如果這些序列化程式用於工作階段狀態,則會發生下列例外狀況:"組件 'Microsoft.Web.DistributedCache、版本=101.0.0.0、文化特性=中性、PublicKeyToken=31bf3856ad364e35' 中的類型 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' 並未標示為可序列化

  • 變更工作階段狀態提供者設定。如需可用組態選項的清單,請參閱 ASP.NET 工作階段狀態提供者組態設定 (Azure 快取)

如需與 Shared Caching 一併使用提供者,請參閱作法:設定 ASP.NET 工作階段狀態提供者 (Azure Shared Caching)

另請參閱

顯示:
© 2014 Microsoft