从.NET应用程序连接到远程MongoDb实例时遇到一些麻烦。
我创建了一个非常简单的控制台应用程序,它基本上是一个冒烟测试并带回一个项目。如果我在运行MongoDb服务的服务器上运行它,它会毫无问题地与MongoDb通信。 ConnectionString只是mongodb://localhost:27017
。
但是,我想在我的开发环境中的开发环境中运行它。我已经尝试了几个不同的连接字符串(在本文末尾列出),并且我一直收到超时错误:
使用CompositeServerSelector选择服务器30000ms后出现超时{Selectors = MongoDB.Driver.MongoClient + AreSessionsSupportedServerSelector,LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000}}。集群状态的客户端视图是{ClusterId:“1”,ConnectionMode:“Automatic”,类型:“Unknown”,状态:“Disconnected”,服务器:[{ServerId:“{ClusterId:1,EndPoint:”192.168.1.51: 27017“}”,终点:“192.168.1.51:27017”,状态:“已断开”,输入:“未知”}}}。
我正在使用mongocsharpdriver
我为服务器上的27017端口创建了一个inboudd规则,甚至完全关闭了防火墙。
我的Mongo服务器的cfg文件非常基本:
systemLog:
destination: file
path: E:\MongData\mongod.log
storage:
dbPath: E:\MongData\db
directoryPerDB: false
net:
port: 27017
security:
authorization: 'enabled'
我没有任何复制品。只是单个实例。
你可以说,我是一个Mongo菜鸟。出了什么问题?
干杯
连接字符串:
<add name="MConnectionString" connectionString="mongodb://daveAdmin:firetruck1@192.168.1.51:27017" />
<add name="MRealEstateConnectionString" connectionString="mongodb://daveAdmin:firetruck1@BIGDOG:27017" />
<add name="MRealEstateConnectionString" connectionString="mongodb://BIGDOG:27017" />
<add name="RealEstateConnectionString" connectionString="mongodb://192.168.1.51:27017" />
我还尝试在下载Mongo二进制文件(zip文件)后使用CLI进行连接而没有运气:
W:\ mongodb \ bin&gt; mongo --host BIGDOG:27017 MongoDB shell版本v3.7.5-85-gb48579fcba 连接到:mongodb:// BIGDOG:27017 / 2018-04-22T11:05:36.098 + 0930 E QUERY [js]错误:无法连接到服务器BIGDOG:27017,连接尝试失败:NetworkTimeout:套接字操作超时: connect@src/mongo/shell/mongo.js:251:13 @(连接):1:6 异常:连接失败
W:\ mongodb \ bin&gt; mongo --host 192.168.1.51:27017 MongoDB shell版本v3.7.5-85-gb48579fcba 连接到:mongodb://192.168.1.51:27017 / 2018-04-22T11:05:56.508 + 0930 E QUERY [js]错误:无法连接到服务器192.168.1.51:27017,连接尝试失败:NetworkTimeout:套接字操作超时: connect@src/mongo/shell/mongo.js:251:13 @(连接):1:6 异常:连接失败
W:\ mongodb \ bin&gt; mongo --username daveAdmin --password firetruck1 --host 192.168.1.51:27017 MongoDB shell版本v3.7.5-85-gb48579fcba 连接到:mongodb://192.168.1.51:27017 / 2018-04-22T11:07:49.671 + 0930 E QUERY [js]错误:无法连接到服务器192.168.1.51:27017,连接尝试失败:NetworkTimeout:套接字操作超时: connect@src/mongo/shell/mongo.js:251:13 @(连接):1:6 异常:连接失败
W:\ mongodb \ bin&gt; mongo --username daveAdmin --password firetruck1 --host BIGDOG:27017 MongoDB shell版本v3.7.5-85-gb48579fcba 连接到:mongodb:// BIGDOG:27017 / 2018-04-22T11:08:54.305 + 0930 E QUERY [js]错误:无法连接到服务器BIGDOG:27017,连接尝试失败:NetworkTimeout:套接字操作超时: connect@src/mongo/shell/mongo.js:251:13 @(连接):1:6 异常:连接失败
我可以ping服务器并从我的开发人员桌面访问其网络共享。
如何远程连接?这只是一个简单的本地网络 - 通过交换机连接的几台计算机。
答案 0 :(得分:1)
如何远程连接?这只是一个简单的本地网络
从MongoDB 3.6开始,MongoDB二进制文件mongod
和mongos
默认绑定到localhost
。
当仅绑定到localhost时,这些MongoDB 3.6二进制文件只能接受来自同一台计算机上运行的客户端的连接。远程客户端无法连接到仅绑定到localhost的二进制文件。
根据您提供的配置文件,您似乎仍然只绑定到localhost接口(默认)。这解释了为什么在从同一个MongoDB服务器主机执行application / mongo shell时能够连接。
在您的示例中,您可以尝试使用以下内容运行mongod:
mongod --bind_ip localhost,192.168.1.51
另请参阅net.bindIp了解配置参数格式选项。
感兴趣