簡體   English   中英

無法在 webApi 中使用 mongoDB 連接到 Elmah

[英]Unable to connect to Elmah with mongoDB in webApi

我正在開發一個 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 開關。

我找到了答案。 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" />

xxxx 是您選擇使用的可用 IP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM