HostNameComparisonMode 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
들어오는 메시지를 서비스 엔드포인트에 디스패치할 때 URI 비교에 호스트 이름을 사용하는 방법을 지정합니다.
public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode =
Public Enum HostNameComparisonMode
- 상속
필드
Exact | 1 | 강력한 일치 항목이 없는 경우 들어오는 메시지를 이 엔드포인트로 디스패치할 때 호스트 이름을 사용합니다. |
StrongWildcard | 0 | 들어오는 메시지를 이 엔드포인트로 디스패치할 때 호스트 이름을 무시합니다. 기본값입니다. |
WeakWildcard | 2 | 강력한 일치 항목이나 정확한 일치 항목이 없는 경우 일치할 때 경우 호스트 이름을 무시합니다. |
예제
다음은 서비스의 구성 파일에서 StrongWildcard 값을 설정 하는 방법의 예입니다.
다음은 앞의 구성 파일을 사용하는 기본 서비스 및 클라이언트입니다.
[ServiceContract()]
public interface ISayHello
{
[OperationContract()]
string SayHello();
}
public class HelloService : ISayHello
{
public string SayHello()
{
return "Hello, WCF!";
}
}
// Open up a channel factory on a client application.
ChannelFactory<ISayHello> factory = new ChannelFactory<ISayHello>("BasicHttpBinding_ISayHello");
// Both of these contracts work (provided both hostnames are valid) because
// the binding configuration is set to hostNameComparisonMode="StrongWildcard".
ISayHello channel = factory.CreateChannel(new EndpointAddress("http://localhost:8000/UESamples/HelloService"));
ISayHello channel2 = factory.CreateChannel(new EndpointAddress("http://machineName/UESamples/HelloService"));
Console.WriteLine(channel.SayHello());
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
설명
이 값은 들어오는 메시지를 디스패치할 때 HTTP, Net.Tcp 및 Net.Pipe 같은 전송에서 사용하는 URI 일치 규칙을 지정하는 데 사용됩니다. HostNameComparisonMode 같은 위의 전송 중 하나와 해당 BasicHttpBinding 속성을 사용하여 표준 바인딩의 HostNameComparisonMode 값을 구성합니다. HostNameComparisonMode 같은 위의 전송 중 하나와 해당 HttpTransportBindingElement 속성을 사용하여 바인딩 요소의 HostNameComparisonMode 값을 구성합니다.
각 HostNameComparisonMode 값은 일치하는 규칙의 특정 형식에 해당합니다. 일치하는 규칙이 시도되는 순서는 항상 다음과 같습니다.
StrongWildcard
Exact
WeakWildcard
StrongWildcard, 첫 번째 값을 일치 시킬 때 호스트 이름을 무시 하며 세 가지 다른 일치 모드 중 가장 높은 우선 순위입니다. WCF 시스템 제공 바인딩 또는 바인딩 요소에 대 한 기본 값입니다. 유효한 호스트 이름을 사용하여 서비스 엔드포인트에 도달할 수 있음을 나타냅니다. 예를 사용 하 여 MyService를 호스팅하는 경우 http://localhost/MyService
를 사용 하 여 계속 연결할 수 http://www.adatum.com/MyService
때문에 유효한 호스트 이름, "adatum.com"는 무시 됩니다. 여기서 포트는 와일드카드입니다.
두 번째 값을 정확한 수치, 하는 정확한 일치 하는 강력한 일치 항목이 없는 경우 호스트 이름을 포함 하 여, 지정 된 URI를 사용 하 여 필요 합니다. 예를 들어 이 모드에서는 짧은 호스트 이름과 정규화된 도메인 이름이 같은지 확인 작업을 수행하지 않습니다. 따라서 하나의 IP 주소에 여러 개의 호스트가 할당되어 있어 같은 컴퓨터에서 고유한 엔드포인트를 사용하여 여러 서비스를 호스팅할 수 있는 경우 호스트 이름을 일치 조건으로 사용할 수 있습니다. 여기서 포트는 와일드카드입니다.
WeakWildcard, 세 번째 값을 찾을 수 없는 강력한 나 정확한 일치 하는 경우 호스트 이름을 무시 하 여 일치 합니다. 동작 동일 StrongWildcard 일치 하는 순서를 제외 합니다: 강력한 바인딩이나 정확한 바인딩이 시도 된 후 실행 합니다.
참고
IIS(인터넷 정보 서비스)나 WAS(Windows Process Activation Service) 호스팅 환경 내에서 사용되는 경우에는 이러한 값이 적용되지 않습니다. 이러한 경우 WCF는 모든 호스트 이름 비교 모드는 제공 된 IIS 웹 사이트에서 WCF 서비스를 호스트를 사용 합니다.