2012-01-22 174 views
2

我一直在使用Enyim Memcached Client for .Net,试图连接到运行在AppHarbor上的服务器。我的配置文件的相关部分如下所示:超时异常尝试连接到AppHarbor上的Memcached服务器

<enyim.com> 
    <log factory="Enyim.Caching.DiagnosticsLogFactory, Enyim.Caching" /> 
    <memcached protocol="Binary"> 
     <servers> 
     <add address="8d593f28-37d7-4c4f-a702-aa7687a85ea1.memcacher.com" port="11211" /> 
     </servers> 
     <authentication 
      type="Enyim.Caching.Memcached.PlainTextAuthenticator, Enyim.Caching" 
      userName="changed to post on stack overflow" 
      password="changed to post on stack overflow" 
      zone="AUTHZ" 
       /> 
     </memcached> 
    </enyim.com> 

我的连接保持超时。任何想法这里发生了什么?以下是Enyim客户端的日志:

2012-01-21 18:56:08 [错误] 7 Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - 无法初始化池。 - System.TimeoutException:在Enyim.Caching.Memcached.PooledSocket.ConnectWithTimeout(Socket套接字,IPEndPoint端点,Int32超时)上无法连接到50.19.210.46:11211 Enyim.Caching.Memcached.PooledSocket..ctor(IPEndPoint端点)上的 ,时间跨度connectionTimeout,时间跨度receiveTimeout) 在Enyim.Caching.Memcached.MemcachedNode.CreateSocket() 在Enyim.Caching.Memcached.Protocol.Binary.BinaryNode.CreateSocket() 在Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.CreateSocket () at Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.InitPool() 2012-01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - 标记为50.19请求死亡。 210.46:11211 2012-01-21 18:56:08 [调试] 7 Enyim.Caching .Memcached.MemcachedNode.InternalPoolImpl - FailurePolicy.ShouldFail():True 2012-01-21 18:56:08 [WARN] 7 Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - 将节点50.19.210.46:11211标记为死亡 2012 -01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.DefaultServerPool - 节点50.19.210.46:11211已死亡。 2012-01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.DefaultServerPool - 启动恢复计时器。 2012-01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.DefaultServerPool - 定时器启动。 2012-01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - 从池中获取流。 50.19.210.46:11211 2012-01-21 18:56:08 [DEBUG] 7 Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - 池已死或处置,返回null。 50.19.210.46:11211

UPDATE:

原来我无法连接到memcached服务器的原因是因为它是从appharbor的环境中才能访问。因此,对于其他人来说,在本地开发时需要使用本地memcached服务,然后只需在部署时更改凭据(该应用程序实际上会为您自动执行)。问题已解决。

+0

错误消息似乎表明服务器不接受TCP连接。我没有在这台机器上安装telnet,否则我会尝试... –

回答

4

AppHarbor Memcacher桶只能从AppHarbor应用服务器访问。 documentation已被修改,以清楚地反映这一点。

您应该使用本地安装的memcached服务器进行测试。

相关问题