2016-08-24 18 views
1

C#ドライバを使用してMongoDBへの接続に問題があります。このコードは他のシステムでも動作しますが、なんらかの理由で私の場合は動作したくありません。私は最新のMongo .netドライバとcore/bsonを使用しており、正しい接続設定を持っています。MongoDB C#ドライバ 'リモート証明書が無効です'

私の完全なエラーは次のとおりです。

A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = ReadPreferenceServerSelector{ ReadPreference = { Mode = Primary, TagSets = [] } }, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "Sharded", Type : "Sharded", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/lon-mongos1.objectrocket.com:33138" }", EndPoint: "Unspecified/lon-mongos1.objectrocket.com:33138", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. 
at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 
at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 
at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() 
at MongoDB.Driver.Core.Connections.SslStreamFactory.<CreateStreamAsync>d__4.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 
at MongoDB.Driver.Core.Connections.BinaryConnection.<OpenHelperAsync>d__47.MoveNext() 
--- End of inner exception stack trace --- 
at MongoDB.Driver.Core.Connections.BinaryConnection.<OpenHelperAsync>d__47.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() 
at MongoDB.Driver.Core.Servers.ClusterableServer.<HeartbeatAsync>d__42.MoveNext()" }] }. 

私はローカル証明書に外観を撮影した、それは私の側には有効ではありません示唆しているものを見ることができません。

これは私がとあまりにもよく知っているものではありませんが、誰もが、私はここで間違っているかもしれないものにいくつかの光を当てることができればと思った?非モンゴ背景からビーイング

私はVS2015でW7 SP1を実行しています。

編集:私は関係なく、証明書を検証するアプローチを試してみましたが、これはあまりにも、任意の違いを作ることが証明されていません。

私は定期的にシオマネキを実行するのですが、私はシオマネキの証明書を削除して、現在、私はそれを実行していないのです。

答えて

0

のMongoDBは、自己署名SSL証明書を使用する場合、ほとんどのケースでは、このエラーが表示され、それがローカルにインストールされた根の本命と標準の検証を渡すことはできません。

var client = new MongoClient(); 
client.Settings.VerifySslCertificate = false; 
:あなたは、C#のコードでMongoDBのドライバを設定する場合

sslVerifyCertificate=false 

:あなたは、単に接続文字列に、次のクエリパラメータを指定することで、この検証を無効にすることができます

関連する問題