从.net访问Azure Windows 2012 VM上的Couchbase

时间:2014-09-12 15:16:56

标签: windows azure couchbase

我正在尝试在Azure上设置一个新的Couchbase实例,并且无法从.net SDK连接。

对于设置,我在此处执行了以下步骤: http://blog.couchbase.com/step-step-production-deployment-couchbase-windows-azure-virtual-machines(多次尝试在天蓝色的虚拟网络上运行并运行)

在Windows Server 2012 R2上安装了版本:2.5.1企业版(build-1083)。

我一开始只运行一个VM。中等大小,除沙发基地外什么都没用。

已在机器本身和天蓝云服务上打开了天蓝色端口。根据此文档在VM防火墙上设置了新的入站规则:http://docs.couchbase.com/couchbase-manual-2.0/#network-ports。在Azure云服务上,我从该文档中打开了标记为“节点到客户端”的任何内容(8091,8092,11210,11211)。

浏览器中的一切似乎都很好。从我的开发机器,我可以从天蓝色VM外部IP加载couchbase。我已登录并将“testdoc”添加到“默认”存储桶中。我可以在浏览器中查看此文档,并且看起来很好。

问题是当我开始尝试从.net应用程序访问时。当我尝试.Execute获取testdoc时,我收到“无法找到节点”消息,结果doc为null。

日志告诉我地址​​正常,但System.Dns.GetAddrInfo(String name)出错。以下是错误的完整记录:

2014-09-12 14:40:58,291 [10] DEBUG Couchbase.CouchbasePool [(null)] <(null)> - Initializing Couchbase.CouchbasePool

2014-09-12 14:40:58,345 [10] WARN  Enyim.Caching.MemcachedClient [(null)] <(null)> - Creating new client. CID: ffcc1454-1146-4fac-94b6-c74dae07ca4b CouchbaseClient

2014-09-12 14:40:58,348 [10] WARN  Couchbase.CouchbasePool [(null)] <(null)> - Starting Couchbase.CouchbasePool

2014-09-12 14:40:58,468 [10] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Starting the listener. Queue=True

2014-09-12 14:40:58,485 [3] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Started working.

2014-09-12 14:40:58,518 [3] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Looking for the first working node.

2014-09-12 14:40:58,621 [3] DEBUG Couchbase.ConfigHelper [(null)] <(null)> - Found config for bucket default.

2014-09-12 14:40:58,622 [3] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Resolved pool url http://xx.xxx.xx.xxx:8091/pools to http://xx.xxx.xx.xxx:8091/pools/default/bucketsStreaming/default?bucket_uuid=d679672b019cff2053f507a2f4fd642a

2014-09-12 14:40:58,622 [3] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Start receiving messages.

2014-09-12 14:40:58,661 [3] INFO  Couchbase.CouchbasePool [(null)] <(null)> - Received new configuration.

2014-09-12 14:40:58,717 [cbp_thread] INFO  Couchbase.CouchbasePool [(null)] <(null)> - Has vbucket. Server count: 1

2014-09-12 14:40:58,803 [cbp_thread] ERROR Couchbase.CouchbasePool [(null)] <(null)> - Failed to initialize the pool.
System.Net.Sockets.SocketException (0x80004005): The requested name is valid, but no data of the requested type was found
at System.Net.Dns.GetAddrInfo(String name)
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
at Couchbase.CouchbasePool.GetFirstAddress(String hostname)
at Couchbase.CouchbasePool.InitVBucket(ClusterConfig config, ISaslAuthenticationProvider auth)
at Couchbase.CouchbasePool.ReconfigurePool(ClusterConfig config)

我怀疑,因为错误与DNS有关,我在CB机器的配置上搞砸了一些东西,但我没有运气搞清楚是什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

得到了解决。不得不将客户端计算机放在同一个虚拟网络上,调整主机文件,最后更改.net app.config以使用我在安装时为couchbase提供的相同主机名。

这里有更多细节: http://forums.couchbase.com/t/access-couchbase-on-azure-windows-2012-vm-from-net/1580/5