1

我们的 QA 环境中有 2 个 Web 服务器和 1 个应用服务器。它们每个都托管一个 Membase 服务。为简单起见,我们将 Web 服务器称为:web01 和 web02。两者都运行 IIS。

要访问 Membase,我们使用 .Net 客户端:http: //memcached.enyim.com/

我们在这里遇到的问题是 web01 可以随时访问 Membase、设置和获取值而没有任何问题。但是 web02 似乎无法从我们的 Web 应用程序访问 Membase。

我们编写了一个测试控制台应用程序并从 web02 服务器运行它,它工作得很好。

我们甚至尝试过 Telnet 到我们在 web02 配置中的 url 和端口,并且成功了。

Membase 配置值在 machine.config 文件中定义。我们使用 WinMerge 比较了 web01 和 web02 之间的 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 行如何提到 Node IsAlive = False... 这对我来说非常令人费解,因为 web01 表示所有节点都处于活动状态,Membase 管理控制台也是如此。再次从我们的测试应用程序中,在任何地方运行,包括 web02,我们可以在那个 QA Membase 集群中成功设置和获取值。

有人遇到过这个问题吗?或者对我们应该在哪里解决它有任何想法?

谢谢。

4

1 回答 1

1

发现问题。它与服务器上的 .Net 安装有关。并非所有人都安装了所需的 .Net 3.5 SP1。您需要 SP1 才能使 Enyim 库正常工作。

见: http: //www.couchbase.org/forums/thread/machine-cant-connect-cluster

于 2011-09-06T22:09:47.543 回答