2016-11-07 5 views
1

私は、次のC#コードを使用してリモートのMongoDB(バージョン3.2)サーバーに接続しようとしている: - にできません MongoAuthenticationException:C#のMongoAuthenticationExceptionリモートのMongoDBへの接続(3.2)

_client = new MongoClient(
         new MongoClientSettings 
         { 
          Credentials = new[] 
     { 
       MongoCredential.CreateMongoCRCredential("test", "usernamex", "password") 
     }, 
          Server = new MongoServerAddress("xx.xx.xx.xxx", 27017) 
         }); 

     var databases = _client.ListDatabasesAsync().Result; 

それは、次の例外が発生しますデータベース "test"でユーザー名 "usernamex"を認証します。 リモートサーバーユーザー "usernamex"が存在します。 リモートサーバー上でnetstat -a -nを指定すると、xx.xx.xx.xxx:27017接続が確立されます。 ここでは、将来的にこのような問題に直面して、すべての人のために

+0

がどこにユーザーを作成しましたか?データベース自体または管理DB内にありますか? – Demonia

+0

データベースと管理データベースの両方のオプションを試しました – Neno

+1

robomongoやMongoシェフのようなシェルやツールに接続しようとしましたか? (mongo xx.xx.xx.xx:27017/test -u usernamex -p password --authenticationDatabase admin --verbose) – Demonia

答えて

0

がソリューションです:

  1. 接続文字列で、ユーザが実際に十分な権限を持っていることを確認してください。 >使用テスト> db.getUser( "usernamex")

  2. は、次のコードの行置き換えます:

    MongoCredential.CreateMongoCRCredential( "テスト"、 "usernamex"、 "パスワード" をモンゴを使用 は、それは次のようになりシェル)この1と

MongoCredential.CreateCredential("test", "usernamex", "password") 
関連する問題