我一直在使用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服務,然後只需在部署時更改憑據(該應用程序實際上會爲您自動執行)。問題已解決。
錯誤消息似乎表明服務器不接受TCP連接。我沒有在這臺機器上安裝telnet,否則我會嘗試... –