无法通过webApi

时间:2018-02-18 23:48:28

标签: c# mongodb nosql asp.net-web-api2

我正在开发一个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运行调试应用程序,我不确定它是否与此有关。请参阅屏幕截图,了解完整错误。Error

更新:还尝试使用默认设置启动mongod,因为我使用配置文件将数据指向不同的目录。也尝试使用--bind_ip_all开关。

1 个答案:

答案 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。