C#ドライババージョン2.4.3でMongoDBアトラスに接続しようとしているasp.netコアベースのドッカーコンテナがあります。MongoDBアトラスの接続が、ASP.netコアを実行しているドッカーコンテナ内で動作していません。 kestrel内部からうまく動作します
私たちがコンテナの外で実行すると、接続が正常に動作しています。すなわち直接ケストレルからのものである。しかし、コンテナ内から同じコードを実行すると、mongodbアトラスへの接続がタイムアウトします。
詳細: MongoDBのC#のドライババージョン:2.4.3
接続文字列: のMongoDB:// SA:@ cluster0-shard-00-00-po5vp.mongodb.net:27017、cluster0- shard-00-01-po5vp.mongodb.net:27017,cluster0-shard-00-02-po5vp.mongodb.net:27017/admin?ssl=true &さらにreplicaSet = Cluster0-シャード - 0 &認証発信元=管理者
アクセスするデータベース:構成
ASP.netコアバージョン:Dockerfileで1.1
BaseImage:マイクロソフト/
Dockerfile内容をaspnetcore-構築: マイクロソフト/ WORKDIR/SaaS_Configuration_Microservice COPY ./SaaS_Configuration_Microserviceをaspnetcore-ビルドから。 [ "PublishOutput/SaaS_Configuration_Microservice.dll"、 "DOTNET"] 80 がRUN DOTNET RUNのDOTNETがPublishOutput ENTRYPOINT -o -cリリースを公開復元
を公開私たちは、Windows 10で
完全チョウゲンボウを実行していますエラーメッセージ: ex.Message "30000ms後に、CompositeServerSelectorを使用してサーバーを選択するとタイムアウトが発生しました{Selectors = ReadPreferenceServerSelector {ReadPreference = {Mode:Primary}}、LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000}}クライアントのクラスタ状態のビュー{ClusterId:\ "1 \"、ConnectionMode:\ "ReplicaSet"、タイプ: "ReplicaSet"、状態:\ "Disconnected \"、サーバー:[ServerId:\ "{ClusterId:1、EndPoint:\" Unspecified/cluster0-shard-00-00-po5vp。 mongodb.net:27017 \ "} \"、エンドポイント:\ "未指定/ cluster0-shard-00-00-po5vp.mongodb.net:27017 \"、状態:\ "切断済み"、タイプ:\ "不明\" 、HeartbeatException:\ "MongoDB.Driver.MongoConnectionException:サーバーへの接続を開く際に例外が発生しました。 ---> MongoDB.Driver.Core.WireProtocol.CommandWireProtocol 1.<ExecuteAsync>d__11.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at MongoDB.Driver.Core.Connections.ConnectionInitializer.<InitializeConnectionAsync>d__3.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at MongoDB.Driver.Core.Connections.BinaryConnection.<OpenHelperAsync>d__48.MoveNext()\n --- End of inner exception stack trace ---\n at MongoDB.Driver.Core.Connections.BinaryConnection.<OpenHelperAsync>d__48.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at MongoDB.Driver.Core.Servers.ServerMonitor.<HeartbeatAsync>d__27.MoveNext()\" }, { ServerId: \"{ ClusterId : 1, EndPoint : \"Unspecified/cluster0-shard-00-01-po5vp.mongodb.net:27017\" }\", EndPoint: \"Unspecified/cluster0-shard-00-01-po5vp.mongodb.net:27017\", State: \"Disconnected\", Type: \"Unknown\", HeartbeatException: \"MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> MongoDB.Driver.MongoCommandException: Command failed.\n at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol
1.ProcessReply(ConnectionId connectionId、ReplyMessage) - > MongoDB.Driver.MongoCommandException:コマンドが失敗しました。\ n MongoDB.Driver.Core.WireProtocol.CommandWireProtocol 1.ProcessReply(ConnectionId connectionId, ReplyMessage
1件の返信) 1 reply)\n at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol
1.d__11.MoveNext()\ n ---例外がスローされた前の場所からのスタックトレースの終了--- \ n System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ n System.Runtime.CompilerServices。 TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n MongoDB.Driver.Core.Connections.ConnectionInitializer.d__3.MoveNext()\ n ---例外がスローされた前の場所からのスタックトレースの終了--- System.Runtimeの\ n .ExceptionServices.ExceptionDispatchInfo.Throw()\ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n MongoDB.Driver.Core.Connections.BinaryConnection.d__48.MoveNext()\ n ---内部終了元mongoDB.Driver.Core.Connections.BinaryConnection.d__48.MoveNext()\ n ---例外がスローされた前の場所からのスタックトレースの終了--- System.Runtimeの\ n。 ExceptionServices.ExceptionDispatchInfo.Throw()\ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n MongoDB.Driver.Core.Servers.ServerMonitor \ n"Endpoint:\"、Endpoint:\ "、Endpoint:\" Unknown/cluster0-shard-00-02-po5vp.mongodb.net:27017 \ Unknown/cluster0-shard-00-02-po5vp.mongodb.net:27017 \ "、状態:\" Disconnected \ "、タイプ:\" Unknown \ "、HeartbeatException:\" MongoDB.Driver.MongoConnectionException:サーバーへの接続を開きます。 MongoDB.Driver.Core.WireProtocol.CommandWireProtocol 1.ProcessReply(ConnectionId connectionId, ReplyMessage
1件の返信)\ n MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.d__11.MoveNext()\ n ---例外がスローされた前の場所からのスタックトレースの終了--- \ n System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n \ n ---例外がスローされた前の場所からのスタックトレースの終了--- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ nの\ nでのスタックトレースの終わり。MongoDB.Driver.Core.Connections.ConnectionInitializer.d__3.MoveNext() nでSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n MongoDB.Driver.Core.Connections.BinaryConnection.d__48.MoveNext()\ n ---内部例外スタックトレースの終了--- \ n MongoDB.Driver.Core.Connections.BinaryConnection.d__48.MoveNext()\ n --- staの終わり例外がスローされた前の場所からのckトレース--- \ n System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)\ n MongoDB.Driver.Core .Servers.ServerMonitor.d__27.MoveNext()\ "}]}。"文字列
内部例外:ヌル
Googleとhttps://cloud.mongodb.com/へのPingは、コンテナ内部からうまく機能しています。 –