이 섹션에서는 .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 제한 조건을 최대한 완화할지 여부를 지정합니다. 이에는 유효하지 않은 인증서 또는 호스트 이름 불일치가 포함될 수 있습니다. | |||
애플리케이션 이름 | 연결 핸드신크의 일부로 드라이버가 클라이언트 메타데이터에서 서버에 전달하는 앱 이름입니다. | |||
자동 암호화 옵션 | 클라이언트 사이드 자동 암호화를 위한 설정. | |||
클러스터 구성자 | 소켓, TLS, 클러스터 등에 대한 하위 수준 구성 옵션입니다. | |||
압축기 | 서버에 전송되거나 서버에서 수신하는 유선 프로토콜 메시지에 대한 기본 압축 유형(순서대로). | |||
ConnectTimeout | 시간이 초과하기 전에 드라이버가 서버에 단일 TCP 소켓 연결을 설정하려고 시도하는 시간의 길이입니다. | |||
자격 증명 | 드라이버가 서버에 인증하는 방법에 대한 설정. 이에는 | |||
DirectConnection | 모든 작업을 호스트에 강제로 디스패치할지 여부를 지정합니다. | |||
HeartbeatInterval | 정기적인 서버 모니터링 검사 간격. | |||
HeartbeatTimeout | 모니터링 소켓이 시간 초과되기 전에 유휴 상태를 유지할 수 있는 시간입니다. | |||
IPv6 | 호스팅하다 주소가 IPv6 형식인지 여부를 지정합니다. | |||
IsFrozen | 설정이 고정되었는지 여부를 나타냅니다. 고정 설정은 변경할 수 없습니다. | |||
LinqProvider | 사용할 LINQ 제공자입니다. | |||
로드 밸런싱 | 드라이버가 로드 밸런서에 연결하는지 여부를 지정합니다. 다음의 경우에만 이 속성을
데이터 유형: | |||
LocalThreshold | 서버 자격에 대한 지연 시간 창입니다. 서버의 왕복 시간이 가장 빠른 | |||
로깅 설정 | 로그에 사용되는 설정입니다. | |||
MaxConnecting | 드라이버의 연결 풀이 | |||
MaxConnectionIdleTime | 드라이버가 연결을 닫기 전에 연결이 유휴 상태로 지속될 수 있는 시간입니다. | |||
MaxConnectionLifeTime | 연결이 만료되기 전에 풀링할 수 있는 시간입니다. | |||
최대 연결 풀 크기 | 드라이버가 연결 풀에서 생성할 수 있는 최대 클라이언트 또는 연결 수입니다. | |||
최소 연결 풀 크기 | 작업이 발생하지 않는 경우에도 드라이버가 연결 풀에서 생성하고 유지해야 하는 연결 수입니다. | |||
readConcern | 클라이언트의 기본값 읽기 고려 (read concern). | |||
ReadEncoding | string 역직렬화에 사용할 UTF-8 인코딩입니다. | |||
읽기 설정 | 클라이언트의 기본값 읽기 설정 (read preference)입니다. 연결 URI에 | |||
복제본 세트 이름 | 연결할 복제본 세트의 이름입니다. | |||
읽기 재시도 | 재시도 가능 읽기를 활성화합니다. | |||
RetryWrites | 재시도 가능 쓰기를 활성화합니다. | |||
Scheme | 표준 연결 문자열 형식( | |||
서버 | MongoDB가 실행 중인 호스트 및 포트 번호입니다. | |||
서버API | Stable API 버전을 선택할 수 있습니다. Stable API 버전에 | |||
ServerMonitoringMode | 사용할 서버 모니터링 프로토콜을 지정합니다. | |||
서버 | MongoDB가 실행 중인 클러스터 노드입니다. | |||
ServerSelectionTimeout | 드라이버가 시간이 초과되기 전에 서버 선택을 시도하는 시간입니다. | |||
소켓 타임아웃 | 드라이버가 시간이 | |||
SRVmax 호스트 | 시드 목록을 초기화할 때 또는 SRV 폴맅 중 토폴로지에 새 호스트를 추가할 때 무작위로 선택할 수 있는 SRV 결과의 최대 개수입니다. | |||
SrvServiceName | 드라이버가 시드 목록을 구성하기 위해 조회하는 SRV 리소스 기록 의 서비스 이름입니다. | |||
SslSettings | 클라이언트 인증서, 해지 처리, TLS/SSL 프로토콜 | |||
UseTls | 서버에 연결할 때 TLS를 요구할지 여부를 지정합니다. | |||
대기열 시간 초과 | 운전자가 시간이 | |||
writeConcern | 클라이언트를 위한 쓰기 (write) 시간 초과 및 저널링을 포함한 기본 | |||
쓰기 인코딩 | UTF-8 string 직렬화를 엄격하게 할지 관대하게 할지 지정합니다. 엄격한 |