WCF 서비스 및 클라이언트는 HTTP 및 HTTPS를 통해 통신할 수 있습니다. HTTP/HTTPS 설정은 IIS(인터넷 정보 서비스)를 사용하거나 명령줄 도구를 사용하여 구성합니다. WCF 서비스가 IIS에서 호스팅되는 경우 IIS 내에서 HTTP 또는 HTTPS 설정을 구성할 수 있습니다(inetmgr.exe 도구 사용). WCF 서비스가 자체 호스팅되는 경우 HTTP 또는 HTTPS 설정은 명령줄 도구를 사용하여 구성됩니다.
최소한 URL 등록을 구성하고 서비스에서 사용할 URL에 대한 방화벽 예외를 추가하려고 합니다. Netsh.exe 도구를 사용하여 이러한 설정을 구성할 수 있습니다.
네임스페이스 예약 구성
네임스페이스 예약은 HTTP URL 네임스페이스의 일부에 대한 권한을 특정 사용자 그룹에 할당합니다. 예약은 해당 사용자에게 네임스페이스의 해당 부분에서 수신 대기하는 서비스를 만들 수 있는 권한을 부여합니다. 예약은 URL 접두사이며, 이는 예약이 예약 경로의 모든 하위 경로를 포함한다는 것을 의미합니다. 네임스페이스 예약은 두 가지 방법으로 와일드카드를 사용할 수 있습니다. HTTP 서버 API 설명서에서는 와일드카드를 포함하는 네임스페이스 클레임 간의 확인 순서를 설명합니다.
실행 중인 응용 프로그램은 네임스페이스 등록을 추가하는 유사한 요청을 만들 수 있습니다. 등록과 예약은 네임스페이스의 일부에 대해 경쟁합니다. 예약은 와일드카드를 포함하는 네임스페이스 클레임 간의 해결 순서에 따라 지정된 해결 순서에 따라 등록보다 우선할 수 있습니다. 이 경우 예약은 실행 중인 애플리케이션이 요청을 수신하지 못하도록 차단합니다.
다음 예제에서는 Netsh.exe 도구를 사용합니다.
netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user
이 명령은 DOMAIN\user 계정에 대해 지정된 URL 네임스페이스에 대한 URL 예약을 추가합니다. netsh 명령 사용에 대한 자세한 내용을 보려면 명령 프롬프트를 입력하고 netsh http add urlacl /?
Enter 키를 누르십시오.
방화벽 예외 구성
HTTP를 통해 통신하는 WCF 서비스를 자체 호스팅하는 경우 특정 URL을 사용하는 인바운드 연결을 허용하려면 방화벽 구성에 예외를 추가해야 합니다.
SSL 인증서 구성
SSL(Secure Sockets Layer) 프로토콜은 클라이언트 및 서버의 인증서를 사용하여 암호화 키를 저장합니다. 서버는 클라이언트가 서버 ID를 확인할 수 있도록 연결이 설정될 때 SSL 인증서를 제공합니다. 또한 서버는 클라이언트로부터 인증서를 요청하여 연결의 양쪽에 대한 상호 인증을 제공할 수 있습니다.
인증서는 연결의 IP 주소 및 포트 번호에 따라 중앙 집중식 저장소에 저장됩니다. 특수 IP 주소 0.0.0.0은 로컬 시스템의 모든 IP 주소와 일치합니다. 인증서 저장소는 경로에 따라 URL을 구분하지 않습니다. IP 주소 및 포트 조합이 동일한 서비스는 서비스 URL의 경로가 다르더라도 인증서를 공유해야 합니다.
단계별 지침은 방법: SSL 인증서를 사용하여 포트 구성을 참조하십시오.
IP 수신 대기 목록 구성
HTTP 서버 API는 사용자가 URL을 등록한 후에만 IP 주소 및 포트에 바인딩됩니다. 기본적으로 HTTP 서버 API는 시스템의 모든 IP 주소에 대한 URL의 포트에 바인딩됩니다. HTTP 서버 API를 사용하지 않는 애플리케이션이 이전에 해당 IP 주소 및 포트 조합에 바인딩된 경우 충돌이 발생합니다. IP 수신 대기 목록을 사용하면 WCF 서비스가 컴퓨터의 일부 IP 주소에 대한 포트를 사용하는 응용 프로그램과 공존할 수 있습니다. IP 수신 대기 목록에 항목이 포함된 경우 HTTP 서버 API는 목록에서 지정한 IP 주소에만 바인딩합니다. IP 수신 대기 목록을 수정하려면 관리자 권한이 필요합니다.
다음 예제와 같이 netsh 도구를 사용하여 IP 수신 목록을 수정합니다.
netsh http add iplisten ipaddress=0.0.0.0:8000
기타 구성 설정
를 사용할 WSDualHttpBinding때 클라이언트 연결은 네임스페이스 예약 및 Windows 방화벽과 호환되는 기본값을 사용합니다. 이중 연결의 클라이언트 기본 주소를 사용자 지정하도록 선택하는 경우 새 주소와 일치하도록 클라이언트에서 이러한 HTTP 설정도 구성해야 합니다.
HTTP 서버 API에는 HttpCfg를 통해 사용할 수 없는 몇 가지 고급 구성 설정이 있습니다. 이러한 설정은 레지스트리에서 유지 관리되며 HTTP 서버 API를 사용하는 시스템에서 실행되는 모든 애플리케이션에 적용됩니다. 이러한 설정에 대한 자세한 내용은 IIS에 대한Http.sys 레지스트리 설정을 참조하세요. 대부분의 사용자는 이러한 설정을 변경할 필요가 없습니다.