我正在开发一个ASP.NET WebAPI2项目项目,该项目使用MongoDb使用实体框架存储一些简单数据。我做的每个ASP.NET项目都喜欢用ELMAH进行错误处理,所以我下载了MongoDB版本和Mongo的C#驱动程序。
当我尝试导航到/elmah.axd时,这是告诉处理程序在web.config中使用的内容我收到以下错误:
无法建立连接,因为目标计算机主动拒绝了它127.0.0.1:27017
我的连接字符串如下所示:
<add name="elmah-mongodb" connectionString="mongodb://localhost:27017/elmah?w=0" />
mongoDB告诉我它正在监听这个IP和端口号。我已经尝试更改我的Mongod配置,以便它在端口27017上绑定到127.0.0.1,即使它是默认设置。我还没有对mongo应用任何权限,我还尝试先创建数据库,但是没有用。我已经尝试关闭Windows防火墙和防病毒软件,并确保允许它通过该端口。它正在从Docker运行调试应用程序,我不确定它是否与此有关。请参阅屏幕截图,了解完整错误。
更新:还尝试使用默认设置启动mongod,因为我使用配置文件将数据指向不同的目录。也尝试使用--bind_ip_all开关。
答案 0 :(得分:1)
我找到了答案。 Docker不允许您使用localhost或127.0.0.1,因为它被视为一个单独的实例。你需要告诉mongod听另一个IP并使用它。如果您使用:
mongod --bind_ip=0.0.0.0
它将侦听默认端口27017上的所有可用IP。或者您可以将其绑定到其他可用IP之一。
所以也要将连接字符串更改为:
<add name="elmah-mongodb" connectionString="mongodb://x.x.x.x:27017/elmah?w=0" />
x.x.x.x是您选择使用的可用IP。