Wcf 从多个客户端访问应用程序结构缓存

Wcf 从多个客户端访问应用程序结构缓存,wcf,caching,appfabric,appfabric-cache,Wcf,Caching,Appfabric,Appfabric Cache,我正在尝试在多个主机上设置一个网站,这些应用程序使用App Fabric缓存框架 我已经在机器1上使用SQL Server(非XML)设置了应用程序结构,并使用“NT Authority\Network Service”用户配置应用程序结构。我已在同一台机器上设置了网站,并将“网络服务”设置为应用程序池标识。我已使用“grant CacheAllowedClientAccount”命令将缓存存储的权限授予“网络服务”用户。网站功能正常,能够向缓存中添加/编辑/删除数据。一切都很顺利 但是,当我尝

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

我已经在机器1上使用SQL Server(非XML)设置了应用程序结构,并使用“NT Authority\Network Service”用户配置应用程序结构。我已在同一台机器上设置了网站,并将“网络服务”设置为应用程序池标识。我已使用“grant CacheAllowedClientAccount”命令将缓存存储的权限授予“网络服务”用户。网站功能正常,能够向缓存中添加/编辑/删除数据。一切都很顺利

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

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

如果我授予所有人权限,效果很好,但这不是一个很好的解决方案

两台计算机都驻留在一个域中。


您能提供一些关于这方面的信息吗?

看起来您只是缺少在machine1上运行以下命令的信息

授予CacheAllowedClientAccount-帐户“DOMAIN1\Machine2$”

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

详细解释如下:

请注意,如果客户端应用程序以内置计算机帐户(如“NT Authority\Network Service”)运行,则可以授予计算机对缓存群集的访问权限。要做到这一点,请使用机器帐户,它是域名和机器名,并附加美元符号。以下示例授予对名为DOMAIN1的域中名为Server1的计算机的缓存群集访问权限


Grant CacheAllowedClientAccount-Account“NT Authority\Network Service”

看起来您只是缺少在machine1上运行以下命令的权限

授予CacheAllowedClientAccount-帐户“DOMAIN1\Machine2$”

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

详细解释如下:

请注意,如果客户端应用程序以内置计算机帐户(如“NT Authority\Network Service”)运行,则可以授予计算机对缓存群集的访问权限。要做到这一点,请使用机器帐户,它是域名和机器名,并附加美元符号。以下示例授予对名为DOMAIN1的域中名为Server1的计算机的缓存群集访问权限


Grant CacheAllowedClientAccount-帐户“NT Authority\Network Service”

另一个解决方案是在客户端配置和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>

另一种解决方案是在客户端配置和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>