이 섹션에서는 .NET/C# 드라이버에서 사용할 수 있는 MongoDB 연결 및 인증 옵션에 대해 설명합니다. 연결 URI 또는 MongoClientSettings 객체를 사용하여 연결을 구성할 수 있습니다.
연결 URI 사용
연결 URI를 MongoClient 생성자에 전달하는 경우 문자열에 연결 옵션을 <name>=<value> 쌍으로 포함할 수 있습니다. 다음 예시에서 연결 URI에는 값이 60000인 connectTimeoutMS 옵션과 값이 true인 tls 옵션이 포함되어 있습니다.
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
사용 MongoClientSettings
MongoClientSettings 객체를 사용하여 연결 URI가 아닌 코드에서 연결 설정을 구성할 수 있습니다. 이러한 방식으로 연결을 구성하면 런타임에 설정을 더 쉽게 변경할 수 있고, 컴파일 중에 오류를 포착하는 데 도움이 되며, 연결 URI보다 더 많은 구성 옵션을 제공할 수 있습니다.
MongoClientSettings 객체를 사용하려면 클래스의 인스턴스를 만들고 속성을 설정한 다음 MongoClient 생성자에 인수로 전달하세요.
//const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a MongoClientSettings object var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("sample.host", 27017), ConnectTimeout = new TimeSpan(0, 0, 60), UseTls = true }; // Creates a new client and connects to the server var client = new MongoClient(settings);
연결 옵션
다음 표에는 MongoClientSettings 클래스에서 사용할 수 있는 각 연결 옵션과 가능한 경우 연결 문자열에서 동일한 결과를 얻는 방법이 나열되어 있습니다. MongoClientSettings 속성이 연결 문자열에서 둘 이상의 옵션에 매핑되는 경우 연결 URI 예시에는 모든 관련 옵션이 표시됩니다.
참고
특정 기간 동안 쿼리 매개변수를 사용하는 경우 값은 밀리초 단위여야 합니다. 예를 들어 60초를 지정하려면 60000 값을 사용합니다. 해당 시간 동안 MongoClientSettings 객체를 사용하는 경우 적절한 TimeSpan 값을 사용합니다.
MongoClientSettings 속성 | 설명 | |||
|---|---|---|---|---|
AllowInsecureTls | TLS 제한 조건을 최대한 완화할지 여부를 지정합니다. 이에는 유효하지 않은 인증서 또는 호스트 이름 불일치가 포함될 수 있습니다. | |||
애플리케이션 이름 | 연결 핸드신크의 일부로 드라이버가 클라이언트 메타데이터에서 서버에 전달하는 앱 이름입니다. | |||
자동 암호화 옵션 | Settings for automatic client-side encryption. | |||
클러스터 구성자 | Low-level configuration options for sockets, TLS, cluster, and others. | |||
압축기 | The preferred compression types, in order, for wire-protocol messages sent to | |||
ConnectTimeout | 시간이 초과하기 전에 드라이버가 서버에 단일 TCP 소켓 연결을 설정하려고 시도하는 시간의 길이입니다. | |||
자격 증명 | Settings for how the driver authenticates to the server. This includes | |||
DirectConnection | Specifies whether to force dispatch all operations to the host. | |||
HeartbeatInterval | 정기적인 서버 모니터링 검사 간격. | |||
HeartbeatTimeout | 모니터링 소켓이 시간 초과되기 전에 유휴 상태를 유지할 수 있는 시간입니다. | |||
IPv6 | 호스팅하다 주소가 IPv6 형식인지 여부를 지정합니다. | |||
IsFrozen | 설정이 고정되었는지 여부를 나타냅니다. 고정 설정은 변경할 수 없습니다. | |||
LinqProvider | The LINQ provider to use. | |||
로드 밸런싱 | 드라이버가 로드 밸런서에 연결하는지 여부를 지정합니다. 다음의 경우에만 이 속성을
데이터 유형: | |||
LocalThreshold | 서버 자격에 대한 지연 시간 창입니다. 서버의 왕복 시간이 가장 빠른 | |||
로깅 설정 | The settings used for logging. | |||
MaxConnecting | 드라이버의 연결 풀이 | |||
MaxConnectionIdleTime | 드라이버가 연결을 닫기 전에 연결이 유휴 상태로 지속될 수 있는 시간입니다. | |||
MaxConnectionLifeTime | 연결이 만료되기 전에 풀링할 수 있는 시간입니다. | |||
최대 연결 풀 크기 | 드라이버가 연결 풀에서 생성할 수 있는 최대 클라이언트 또는 연결 수입니다. | |||
최소 연결 풀 크기 | 작업이 발생하지 않는 경우에도 드라이버가 연결 풀에서 생성하고 유지해야 하는 연결 수입니다. | |||
readConcern | The client's default read concern. | |||
ReadEncoding | string 역직렬화에 사용할 UTF-8 인코딩입니다. | |||
읽기 설정 | The client's default read-preference settings. 연결 URI에 | |||
복제본 세트 이름 | 연결할 복제본 세트의 이름입니다. | |||
읽기 재시도 | 재시도 가능 읽기를 활성화합니다. | |||
RetryWrites | 재시도 가능 쓰기를 활성화합니다. | |||
Scheme | Specifies whether to use the standard connection string format ( | |||
서버 | The host and port number where MongoDB is running. | |||
서버API | Allows opting into Stable API versioning. See | |||
ServerMonitoringMode | Specifies the server monitoring protocol to use. When | |||
서버 | The cluster members where MongoDB is running. | |||
ServerSelectionTimeout | 드라이버가 시간이 초과되기 전에 서버 선택을 시도하는 시간입니다. | |||
소켓 타임아웃 | 드라이버가 시간이 | |||
SRVmax 호스트 | 시드 목록을 초기화할 때 또는 SRV 폴맅 중 토폴로지에 새 호스트를 추가할 때 무작위로 선택할 수 있는 SRV 결과의 최대 개수입니다. | |||
SrvServiceName | The service name of the SRV resource records | |||
SslSettings | TLS/SSL options, including client certificates, revocation handling, and | |||
UseTls | 서버에 연결할 때 TLS를 요구할지 여부를 지정합니다. | |||
대기열 시간 초과 | 운전자가 시간이 | |||
writeConcern | The default write-concern settings, including write timeout and | |||
쓰기 인코딩 | UTF-8 string 직렬화를 엄격하게 할지 관대하게 할지 지정합니다. 엄격한 |