복붙노트

[MONGODB] 시간이 초과 CompositeServerSelector를 사용하여 서버를 선택 30000ms 후에 발생한

MONGODB

시간이 초과 CompositeServerSelector를 사용하여 서버를 선택 30000ms 후에 발생한

내가 Mongolabs 내 몽고 데이터베이스를 배포하려고, 모든 것이 잘 작동, 나는 새 데이터베이스를 만듭니다. 내 ConnectionString을 참조하시기 바랍니다.

    public DbHelper()
    {

        MongoClientSettings settings = new MongoClientSettings()
        {
            Credentials = new MongoCredential[] { MongoCredential.CreateCredential("dbname", "username", "password") },
            Server = new MongoServerAddress("ds011111.mongolab.com", 11111),
            //ConnectTimeout = new TimeSpan(30000)
        };

        Server = new MongoClient(settings).GetServer();

        DataBase = Server.GetDatabase(DatabaseName);

    }

나는 데이터베이스를 연결하려고 할 때하지만 쇼 오류 등이다 :

해결법

  1. ==============================

    1.나는 아래와 같이에서 연결 문자열 방법을 대체하고 있습니다.

    나는 아래와 같이에서 연결 문자열 방법을 대체하고 있습니다.

    new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name")
    

    지금은 해결합니다.

    폴 렘케의 도움말을 참조하십시오.

  2. ==============================

    2.추가 "를? = replicaSet를 연결"MongoLab에 연결하는 경우 연결 문자열의 끝.

    추가 "를? = replicaSet를 연결"MongoLab에 연결하는 경우 연결 문자열의 끝.

    new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
    

    이 JIRA 티켓이 몇 가지 세부 사항이 있습니다 https://jira.mongodb.org/browse/CSHARP-1160

    기본적으로 기본은 복제 세트 구성원에 연결하는 것입니다. 그러나 MongoLab의 단일 노드의 설정은 실제로 하나의 노드 복제 세트이며, 이것은 우리가 그것을 신뢰하지됩니다. 덧붙이? 복제 세트 모드와 모든 의지 작업으로 이동하는 드라이버를 강제로 연결 문자열에 = replicaSet를 연결합니다.

    여기에 정보를 발견.

  3. ==============================

    3.확인 현재 IP 주소는 MongoDB를 서버에서 허용 목록에 포함됩니다. 당신이 당신의 인터넷 제공 업체의 새로운 IP 요구 사항을 변경하는 경우 흰색에 등재 될 수 있습니다.

    확인 현재 IP 주소는 MongoDB를 서버에서 허용 목록에 포함됩니다. 당신이 당신의 인터넷 제공 업체의 새로운 IP 요구 사항을 변경하는 경우 흰색에 등재 될 수 있습니다.

  4. ==============================

    4.당신의 인증 DB가 올바르게 설정되어 있는지 확인합니다.

    당신의 인증 DB가 올바르게 설정되어 있는지 확인합니다.

    나는에 연결하고 싶어, 내 인증의 DB를 (관리 DB 이외의) 다른이었다에만 DB를 언급 할 때 나는이 문제에 달렸다.

    이 라인의 DB-이름은 인증 DB로 간주됩니다.

    new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
    

    그런 다음 나중에 선택한 DB를 변경할 수 있습니다

    mDb = mClient.GetDatabase(mongoDBName);
    
  5. ==============================

    5.같은 오류 메시지가 아니지만 MongoLabs 배포가 발생했습니다.

    같은 오류 메시지가 아니지만 MongoLabs 배포가 발생했습니다.

    난 그냥 Asp.Net 코어 앱 제목에 나와있는 동일한 오류가 발생했습니다. 내 문제는 인해 IOC 구성 문제에 있었다.

    내 IOC 컨테이너에서 내 포장 MongoClient 인스턴스는 종속성 과도 라이프 스타일로 구성되었다.

    MongoDB를 C #을 드라이버 별 :

    나는 싱글로 내 객체의 라이프 스타일을 촉진하고 그 문제를 해결.

    내가 사용하고 있습니다 :

    는 C # 드라이버 클라이언트 섹션을 참조하십시오 : http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use

  6. ==============================

    6.확인 데이터베이스 사용자 이름은 대소 문자를 구분합니다. 나는 때문에 사용자 이름의 대소 문자 구분의이 문제에 달렸다.

    확인 데이터베이스 사용자 이름은 대소 문자를 구분합니다. 나는 때문에 사용자 이름의 대소 문자 구분의이 문제에 달렸다.

  7. from https://stackoverflow.com/questions/31314245/a-timeout-occured-after-30000ms-selecting-a-server-using-compositeserverselector by cc-by-sa and MIT license