設定物件快取使用者帳戶
適用版本: SharePoint Server 2010
上次修改主題的時間: 2016-11-30
物件快取儲存 Microsoft SharePoint Server 2010 中項目的相關屬性。發佈功能在轉譯網頁時,會使用此快取中的項目。物件快取的目標在於降低執行 SQL Server 之電腦上的負載,並改善要求延遲和輸送量。物件快取會以兩個現成的使用者帳戶之一進行查詢:「入口網站進階使用者」及「入口網站進階讀者」。這些使用者帳戶必經經過適當設定,以確保物件快取正常運作。「入口網站進階使用者」帳戶必須是具備 Web 應用程式之「完全控制」權限的帳戶。「入口網站進階讀者」帳戶必須是具備 Web 應用程式之「完整讀取」權限的帳戶。
重要
「入口網站進階使用者」及「入口網站進階讀者」帳戶必須是不同的帳戶,且不得是曾經用來登入網站的帳戶。
本文說明必須設定物件快取使用者帳戶的原因,並說明帳戶的設定方式。如需物件快取的資訊,請參閱<快取設定操作 (SharePoint Server 2010)>。
在 SharePoint Server 2010 中,項目的查詢作業會與進行查詢的使用者帳戶連結。發佈功能各部分的查詢結果會從物件快取中快取。這些結果會根據進行查詢的使用者予以快取。若要最佳化快取命中比例及記憶體需求,查詢必須根據使用者是否可以檢視草稿項目。當發佈控制項要求物件快取進行查詢,以取得控制項的資料時,快取會進行查詢,但是不像是使用者進行查詢,快取會查詢兩次:一次是以「入口網站進階使用者」帳戶的身分,另一次是以「入口網站進階讀者」帳戶的身分。兩次查詢的結果會儲存在物件快取中。「入口網站進階使用者」帳戶的結果包含草稿項目,而「入口網站進階讀者」帳戶的結果僅包含已發佈的項目。物件快取會接著檢查啟動要求之使用者的存取控制清單 (ACL),然後根據使用者是否可以檢視草稿項目,將適當結果傳回給該使用者。將「入口網站進階使用者」及「入口網站進階讀者」帳戶新增至 Web 應用程式之後,快取必須僅為兩位使用者儲存結果。如此會增加傳回的查詢結果數目,並降低儲存快取所需的記憶體數量。
根據預設,「入口網站進階使用者」帳戶為網站的系統帳戶,而「入口網站進階讀者」帳戶為 NT Authority\Local Service。使用現成帳戶有兩個主要問題。
第一個問題是部分項目會取出至系統帳戶,因此查詢這些項目時,會傳回取出的項目版本,而不是最新發佈的版本。由於這不是使用者預期傳回的結果,因此快取必須進行第二次查詢,以擷取正確的檔案版本。每次要求這些項目都會對伺服器效能造成不良影響。如果使用者的帳戶設為「入口網站進階使用者」帳戶,任何具有取出項目的使用者都會發生相同的問題。因此,設定為「入口網站進階使用者」及「入口網站進階讀者」的帳戶,不應該是用來登入網站的使用者帳戶。如此可確保使用者不會不慎取出項目,而導致效能問題。
預設「入口網站進階讀者」帳戶為 NT Authority\Local Service,宣告驗證應用程式無法正確解析此帳戶。因此,如果宣告驗證應用程式未明確設定「入口網站進階讀者」帳戶,瀏覽至此應用程式下的網站集合會導致「拒絕存取」錯誤,即使是網站管理員亦然。任何網站如有明確使用物件快取的任何功能 (例如 SharePoint Server 發佈基礎結構、中繼資料導覽、內容查詢網頁組件或導覽),皆會發生此錯誤。
本文內容:
- 使用管理中心及 Windows PowerShell 設定物件快取使用者帳戶
使用管理中心及 Windows PowerShell 設定物件快取使用者帳戶
您可以使用管理中心及 Windows PowerShell 設定物件快取的使用者帳戶。您必須先在管理中心網站中建立帳戶,然後再使用 Windows PowerShell 將帳戶新增至 Web 應用程式。您必須將使用者帳戶新增至每個 Web 應用程式。
警告
在此程序最後,您必須重設 Internet Information Services (IIS),以將變更套用至 Web 應用程式。請務必在對連線至網站的使用者造成最低困擾時執行此程序。如需 IISReset 的詳細資訊,請參閱 IIS 重設活動(可能為英文網頁)。
使用管理中心建立使用者帳戶
確認您具備下列管理認證:
- 若要在管理中心中建立使用者帳戶,您必須是執行 SharePoint 管理中心網站之電腦上的伺服器陣列管理員群組成員。
在管理中心網站上,按一下 [應用程式管理] 區段中的 [管理 Web 應用程式]。
按一下您要設定的 Web 應用程式名稱。
在 [Web 應用程式] 索引標籤的 [原則] 群組中,按一下 [使用者原則]。
在 [Web 應用程式的原則] 視窗中,按一下 [新增使用者]。
從 [區域] 清單中,選取 [所有區域],然後按 [下一步]。
在 [使用者] 方塊中,輸入「入口網站進階使用者」帳戶的使用者名稱。
按一下 [檢查名稱] 圖示,確定應用程式伺服器上的驗證提供者可以解析帳戶名稱。
在 [選擇權限] 區段中,核取 [完全控制 - 具有完全控制權] 方塊。
按一下 [完成]。
對「入口網站進階讀者」帳戶重複步驟 5 至 8。
在 [選擇權限] 區段中,核取 [完整讀取 - 具有完整唯讀權限] 方塊。
按一下 [完成]。
記下「物件快取進階讀者」及「物件快取進階使用者」帳戶在 [使用者名稱] 欄中顯示的名稱。視 Web 應用程式是否使用宣告驗證而定,顯示的字串會有所不同。
使用 Windows PowerShell 將使用者帳戶新增至 Web 應用程式
請確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):
$wa = Get-SPWebApplication -Identity "<WebApplication>" $wa.Properties["portalsuperuseraccount"] = "<SuperUser>" $wa.Properties["portalsuperreaderaccount"] = "<SuperReader>" $wa.Update()
以下列值取代預留位置:
<Web 應用程式> 是要新增帳戶的 Web 應用程式名稱。
<進階使用者> 是如前一程序步驟 14 所提及之 [使用者名稱] 欄中所示,用於「入口網站進階使用者」帳戶的帳戶。
<進階讀者> 是如前一程序步驟 14 所提及之 [使用者名稱] 欄中所示,用於「入口網站進階讀者」帳戶的帳戶。
儲存檔案並將其命名為 SetUsers.ps1。
注意
您可以使用其他檔案名稱,但是您必須將檔案另存為副檔名為 .ps1 之 ANSI 編碼的文字檔案。
關閉文字編輯器。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
變更至您儲存檔案的目錄。
在 Windows PowerShell 命令提示字元處,輸入下列命令: ./SetUsers.ps1
重設 Internet Information Services (IIS)。如需 IISReset 的詳細資訊,請參閱 IIS 重設活動(可能為英文網頁)