我们的QA环境中有2个web服务器和1个应用程序服务器。它们中的每一个都托管一个Membase服务。为简单起见,我们称web服务器为: web01和web02。都在运行IIS。
为了访问Membase,我们使用.Net客户端:http://memcached.enyim.com/
我们在这里遇到的问题是,web01可以随时访问Membase,设置和获取值,而不会出现任何问题。然而,web02似乎不能从我们的web应用程序访问Membase。
我们编写了一个测试控制台应用程序,并在web02服务器上运行它,它工作得很好。
我们甚至尝试远程登录到我们在web02配置中的url和端口,并且成功了。
Membase配置值在machine.config文件中定义。我们比较了web01和web02 w/ WinMerge之间的machine.config文件,发现它们是相同的。
然后我使用反射创建了一个MembaseClient对象的转储文件,下面是我们在Web02上得到的结果:
==========================================
Setting Value: 1337047585
On the Key: testPageKey_287945569
"Setting NOT successful!!"
*Membase Client dump:*
bucketName: OurBucketName
bucketPassword: ThisIsAPassword
poolUrls count: 3
Url_0: http://web01:8091/pools/OurBucketName
Url_1: http://web02:8091/pools/OurBucketName
Url_2: http://app01:8091/pools/OurBucketName
Node: 69.147.125.66:11210 is alive: False
Node: 69.147.125.67:11210 is alive: False
Node: 69.147.125.68:11210 is alive: False==========================================
请注意最后3行如何提到节点IsAlive = False...这让我非常困惑,因为web01说所有节点都是活动的,Membase管理控制台也是如此。同样,从我们的测试应用程序,从任何地方运行,包括web02,我们可以在QA Membase集群中成功地设置和获取值。
有人遇到过这个问题吗?或者知道我们应该在哪里解决这个问题?
谢谢。
发布于 2011-09-07 06:09:48
找到问题所在。这与服务器上的.Net安装有关。并不是所有的系统都安装了所需的.Net 3.5 SP1。您需要SP1才能使Enyim库正常工作。
请参阅:http://www.couchbase.org/forums/thread/machine-cant-connect-cluster
https://stackoverflow.com/questions/6631100
复制相似问题