設定 ASP.NET 工作階段狀態提供者 (Windows Server AppFabric 快取)
Windows Server AppFabric 為 ASP.NET Web 應用程式提供自訂工作階段狀態提供者。因此 Web 應用程式可將工作階段物件分散到快取叢集中的節點,以提供延展性。由於 AppFabric 快取功能的性質,您在 Session 中放入的物件必須是可序列化的。
本主題中的程序假設您已準備好 Web 應用程式的開發環境,並已設定對 AppFabric 快取組件的參照等。如需詳細資訊,請參閱準備快取用戶端開發環境 (Windows Server AppFabric 快取)。
如果要讓 ASP.NET Web 應用程式使用 AppFabric 工作階段狀態提供者,您必須新增下列元素到應用程式的 web.config 檔案:
configSections
:此元素必須是組態檔中的第一個元素,在開頭的configuration
標記下方。AppFabric 快取組件需要此元素才能作用。dataCacheClient
:此元素是組態元素的子系。它是用來設定快取用戶端以及指定快取主機。如需有關快取用戶端的詳細資訊,請參閱開發快取用戶端 (Windows Server AppFabric 快取)。sessionState
:此元素是 system.web 元素的子系。它是用來告知 Web 應用程式必須使用 AppFabric 來管理工作階段狀態。cacheName
屬性指定將使用的具名快取。如果您將工作階段資料儲存在快取區域中,請使用regionName
屬性來指定區域。
注意
儲存於區域中的物件不會在快取主機之間進行負載平衡,而只會存在於建立區域所在的快取主機上。基於這個理由,這並非一般建議的組態。當有必須在單一主機上放置所有工作階段物件的特殊需求時,才應使用區域。
警告
建議您保護用來指定快取主機名稱的 web.config 檔案的安全。
為 Web 應用程式設定 AppFabric 工作階段狀態提供者
在執行這些步驟之後,將
configSections
元素從範例複製到您的 web.config 檔案中。確定此元素是configuration
標記內的第一個元素。在執行這些步驟之後,將
dataCacheClient
元素從範例複製到您的 web.config 檔案中。您必須將它新增到configuration
元素內的configSections
元素之後。- 將主機元素的
name
與cachePort
屬性設定為符合您環境中的快取伺服器。視需要新增或移除主機元素。
- 將主機元素的
在執行這些步驟之後,將
sessionState
元素從範例複製到您的 web.config 檔案中。您必須將它放在system.web
元素內。判斷 Web 應用程式的身分識別。這可以在 Web 伺服器上的 IIS 管理員中完成。請查看與 Web 應用程式相關聯的應用程式集區身分識別。請使用
Grant-CacheAllowedClientAccount
Windows Powershell 命令,將快取叢集的存取權授與此使用者。提示
如果應用程式集區是以內建電腦帳戶 (如 "NT Authority\Network Service) 的身分執行,則您應該授與該電腦的快取叢集存取權。將 DOMAINNAME\MACHINENAME$ 指定為帳戶就可進行授與。請注意,"$" 會附加至電腦名稱,指出這是電腦帳戶。
範例
此範例顯示如何設定 ASP.NET Web 應用程式,以使用快取用戶端將工作階段資料儲存到名為 NamedCache1
的分散式快取。此範例中的快取用戶端只設定為與名為 CacheServer1
的單一快取主機進行通訊。
首先,將 configSections
元素新增到 web.config 檔案,以做為 configuration
元素中的第一個元素:
<!--configSections must be the FIRST element -->
<configSections>
<!-- required to read the <dataCacheClient> element -->
<section name="dataCacheClient"
type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>
接著,將 dataCacheClient
元素新增到 web.config 檔案,接在 configSections
元素後面。這是您設定快取用戶端以符合應用程式需求的位置。如需詳細資訊,請參閱應用程式組態設定 (Windows Server AppFabric 快取)。
<!-- cache client -->
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host
name="CacheServer1"
cachePort="22233"/>
</hosts>
</dataCacheClient>
在新增 configSections
與 dataCacheClient
元素之後,將 sessionState
元素新增到 web.config 檔案的 system.web
元素內。這是您指定 Web 應用程式應使用哪一個快取來儲存工作階段狀態資料的位置。
請注意,如果有多個 Web 應用程式需共用相同的工作階段狀態,它們應使用相同的 sharedId
屬性值。否則,您不需要指定 sharedId
屬性。
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<!-- specify the named cache for session data -->
<add
name="AppFabricCacheSessionStoreProvider"
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
cacheName="NamedCache1"
sharedId="SharedApp"/>
</providers>
</sessionState>
完成後,Web 應用程式最終的 web.config 檔案會如以下範例所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--configSections must be the FIRST element -->
<configSections>
<!-- required to read the <dataCacheClient> element -->
<section name="dataCacheClient"
type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>
<!-- cache client -->
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host
name="CacheServer1"
cachePort="22233"/>
</hosts>
</dataCacheClient>
<system.web>
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<!-- specify the named cache for session data -->
<add
name="AppFabricCacheSessionStoreProvider"
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
cacheName="NamedCache1"
sharedId="SharedApp"/>
</providers>
</sessionState>
</system.web>
</configuration>
另請參閱
概念
開始使用 Windows Server AppFabric 快取用戶端 (XML)
使用組態方式 (Windows Server AppFabric 快取)
Windows Server AppFabric 快取概念
開發快取用戶端 (Windows Server AppFabric 快取)
2011-12-05