从多个客户端访问App Fabric缓存

时间:2012-12-07 11:54:13

标签: wcf caching appfabric appfabric-cache

我正在尝试在多个主机上设置一个网站,这些应用程序使用App Fabric Caching框架。

我在 Machine1 上使用SQL Server(而不是XML)设置了App Fabric,我使用了" NT Authority \ Network Service"用户配置App Fabric。我已经使用"网络服务"在同一台计算机上设置了网站。设置为应用程序池标识。我已经允许缓存存储到"网络服务"用户使用" grant-CacheAllowedClientAccount"命令。网站功能正常,可以添加/编辑/删除数据到缓存中。一切顺利。

但是,当我尝试在具有完全相同的IIS和应用程序池设置的另一台计算机( Machine2 )上托管相同的应用程序时,应用程序将失败并显示以下错误:

  

暂时失败。请稍后重试。 (一个或多个指定的缓存服务器不可用,这可能是由忙碌引起的   网络或服务器。对于本地缓存群集,还要验证   以下条件。确保已授予安全权限   对于此客户端帐户,并检查AppFabric缓存服务   允许通过所有缓存主机上的防火墙。还有   服务器上的MaxBufferSize必须大于或等于   从客户端发送的序列化对象大小。)

如果我获得了所有人的授权许可,那么它运行正常,但这不是一个很好的解决方案。

两台计算机都位于域中。

您能否就此提供一些意见?

2 个答案:

答案 0 :(得分:4)

看起来你只是缺少在machine1上运行以下命令

Grant-CacheAllowedClientAccount -Account“DOMAIN1 \ Machine2 $”

执行此操作后,NETWORK SERVICE帐户中machine2上运行的所有服务都将能够访问Machine1上托管的Appfabric缓存

在此详细解释 - http://msdn.microsoft.com/en-us/library/ff921012(v=azure.10).aspx

请注意,如果客户端应用程序作为内置计算机帐户运行,例如“NT Authority \ Network Service”,则可以授予计算机对缓存集群的访问权限。要执行此操作,请使用计算机帐户,即具有附加美元符号的域名和计算机名称。以下示例将缓存集群访问授予名为DOMAIN1的域中名为Server1的计算机。

Grant-CacheAllowedClientAccount -Account“NT Authority \ Network Service”

答案 1 :(得分: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>