2012-12-07 66 views
1

我試圖在多個主機上設置網站,並且這些應用程序使用應用結構緩存框架。從多個客戶端訪問應用結構緩存

我已經使用SQL Server(不是XML)在Machine1上設置了App Fabric,我使用「NT Authority \ Network Service」用戶來配置App Fabric。我在同一臺機器上設置了網站,並將「網絡服務」設置爲應用程序池標識。我已使用「grant-CacheAllowedClientAccount」命令將緩存存儲的權限授予「網絡服務」用戶。該網站功能正常,並能夠添加/編輯/刪除數據到緩存中。一切順利。

然而,當我嘗試主持另一臺機器上的同一個應用程序(機器2)具有完全相同的IIS和應用程序池設置,應用程序失敗,出現以下錯誤:

There is a temporary failure. Please retry later. (One or more specified cache servers are unavailable, which could be caused by busy network or servers. For on-premises cache clusters, also verify the following conditions. Ensure that security permission has been granted for this client account, and check that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater than or equal to the serialized object size sent from the client.)

如果我做了授予大家的許可,它工作正常,但這不是一個很好的解決方案。

這兩臺機器都駐留在一個域中。

您能否就此向我提供一些意見?

回答

4

看起來像你只是缺少machine1上運行下面的命令

格蘭特CacheAllowedClientAccount -account「DOMAIN1 \ $機器2」

這樣做了以後,在網絡服務machine2上運行的所有服務帳戶將能夠訪問託管在MACHINE1

的AppFabric的緩存在這裏詳細解釋 - http://msdn.microsoft.com/en-us/library/ff921012(v=azure.10).aspx

請注意,如果客戶端應用程序作爲內置計算機帳戶(例如「NT Authority \ Network Service」)運行,則可以授予該計算機對緩存羣集的訪問權限。爲此,請使用機器帳戶,該帳戶是帶有附加美元符號的域名和計算機名稱。以下示例將緩存羣集訪問權限授予名爲DOMAIN1的域中名爲Server1的計算機。

格蘭特CacheAllowedClientAccount -account「NT AUTHORITY \網絡服務」

2

另一個解決方案是設置安全&保護級別設置爲在客戶端配置和AppFabric緩存服務配置沒有在這兩個。

在的web.config/app.config文件

<dataCacheClient> 
<securityProperties mode="None" protectionLevel="None"/> 
<hosts> 
    <host name="XXXX" cachePort="22233"/> 
</hosts> 

在AppFabric緩存服務配置文件

<advancedProperties> 
     <securityProperties mode="None" protectionLevel="None" /> 
</advancedProperties>