从其他计算机访问时,AppFabric Cache服务崩溃

时间:2014-05-02 15:44:02

标签: appfabric-cache

说服一切在我的开发环境中工作,然后在测试服务器上,我试图在将要投入生产的服务器上设置AppFabric Cache。

所以我将AppFabricCache服务安装在我将要调用的" cacheserver1"以及我打电话给#34; webserver1"的客户端。当我从安装在cacheserver1上的客户端连接到缓存时,它可以工作。当我从安装在webserver1上的客户端 - 或从我的开发机器连接到缓存时,打开防火墙 - 缓存服务崩溃。

Application: DistributedCacheService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.CallbackException
Stack:
   at System.Runtime.AsyncResult.Complete(Boolean)
   at System.ServiceModel.Channels.ConnectionStream+IOAsyncResult.OnAsyncIOComplete(System.Object)
   at System.ServiceModel.Channels.SocketConnection.OnSendAsync(System.Object, System.Net.Sockets.SocketAsyncEventArgs)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(System.Net.Sockets.SocketError, Int32, System.Net.Sockets.SocketFlags)
   at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

"主持人" ClusterConfig.xml的一部分读取:

<hosts>
  <host replicationPort="22236" arbitrationPort="22235" clusterPort="22234"
    hostId="990129399" size="849" leadHost="true" account="WIN-BLABLABLA\AppFabricCache"
    cacheHostName="AppFabricCachingService" name="WIN-BLABLABLA"
    cachePort="22233" />
</hosts>

配置防火墙,以便cacheserver1接受来自webserver1的端口22233上的传入连接。他们是两台AWS机器,而不是同一个域或任何东西......我原以为我可以通过TCPIP进行讨论。

  1. 一个简单的请求如何导致整个服务崩溃?这并不能让我对缓存服务的健壮性感到放心。
  2. 此配置是如何使用分布式缓存的吗?
  3. 我需要做些什么才能让它发挥作用/从中获得更有用的错误?

1 个答案:

答案 0 :(得分:0)

知道了!

我需要禁用缓存安全性(这很好,我只是要用防火墙来管理它)。

我需要补充一下      到客户端(webserver)上的配置文件,和

<advancedProperties>
  <securityProperties mode="None" protectionLevel="None">
    <authorization>
      <allow users="Everyone" />
    </authorization>
  </securityProperties>
</advancedProperties>

到cacheserver上的ClusterConfig.xml