CustomBinding 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩 요소 목록에서 바인딩을 정의합니다.
public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
inherit Binding
Public Class CustomBinding
Inherits Binding
- 상속
- 특성
예제
다음 예제에서는 사용 하 여 개체를 CustomBinding 만드는 방법을 보여 입니다는 ReliableSessionBindingElement 및 HttpTransportBindingElement
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
// Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
// Add a MEX endpoint.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
serviceHost.Description.Behaviors.Add(smb);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")
' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
' Create a custom binding that contains two binding elements.
Dim reliableSession As New ReliableSessionBindingElement()
reliableSession.Ordered = True
Dim httpTransport As New HttpTransportBindingElement()
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
Dim binding As New CustomBinding(reliableSession, httpTransport)
' Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")
' Add a MEX endpoint.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
serviceHost.Description.Behaviors.Add(smb)
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
설명
시스템 제공 바인딩 중 하나가 서비스 요구 사항을 충족하지 않는 경우 사용자 지정 바인딩을 사용합니다. 예를 들어 사용자 지정 바인딩을 사용하여 서비스 엔드포인트에서 새 전송 또는 새 인코더를 사용할 수 있습니다.
사용자 지정 바인딩은 특정 순서로 "스택"된 바인딩 요소 컬렉션의 CustomBinding 중 하나를 사용하여 구성됩니다.
상단에 흐름 트랜잭션을 허용하는 선택적 TransactionFlowBindingElement가 있습니다.
다음은 WS-ReliableMessaging 사양에 정의된 세션 및 순서 지정 메커니즘을 제공하는 선택적 ReliableSessionBindingElement가 있습니다. 이 세션 개념은 SOAP 매개자 및 전송 매개자를 교차할 수 있습니다.
다음은 권한 부여, 인증, 보호 및 기밀성과 같은 보안 기능을 제공하는 선택적 보안 바인딩 요소입니다. WCF(Windows Communication Foundation)에서 제공하는 보안 바인딩 요소는 다음과 같습니다.
다음은 바인딩 요소에 의해 지정된 선택적 메시지 패턴입니다.
다음은 선택적 전송 업그레이드/도우미 바인딩 요소입니다.
다음은 중요한 메시지 인코딩 바인딩 요소입니다. 자체 전송을 사용하거나 다음 메시지 인코딩 바인딩 중 하나를 사용할 수 있습니다.
하단에는 필수 전송 요소가 있습니다. 고유한 전송을 사용하거나 WCF(Windows Communication Foundation)에서 제공하는 전송 바인딩 요소 중 하나를 사용할 수 있습니다.
다음 표에는 각 계층에 대한 옵션이 요약되어 있습니다.
계층 | 옵션 | 필수 |
---|---|---|
트랜잭션 흐름 | TransactionFlowBindingElement | No |
안정성 | ReliableSessionBindingElement | No |
보안 | 대칭, 비대칭, 전송 수준 | No |
모양 변경 | CompositeDuplexBindingElement | No |
업그레이드 전송 | SSL 스트림, Windows 스트림, 피어 확인자 | No |
Encoding | 텍스트, 이진 파일, MTOM, 사용자 지정 | Yes |
전송 | TCP, 명명된 파이프, HTTP, HTTPS, MSMQ 버전, 사용자 지정 | Yes |
또한 고유한 바인딩 요소를 정의하고 이전에 정의된 계층 사이에 삽입할 수 있습니다.
사용자 지정 바인딩을 사용하여 시스템 제공 바인딩을 수정하는 방법에 대한 설명은 방법: 시스템 제공 바인딩 사용자 지정을 참조하세요.
참고
.NET Framework 3.5 이전 버전으로 빌드된 WCF 클라이언트 애플리케이션에서 .NET Framework 4.0 이상으로 빌드된 WCF 서비스를 호출하는 경우 svcutil.exe 의해 생성되거나 Visual Studio에서 서비스 참조를 추가하는 구성 파일에 바인딩 구성의 유효성 특성이 포함됩니다. 이 특성은 .NET Framework 3.5 런타임에서 인식되지 않으며 애플리케이션은 "인식할 수 없는 특성 유효성"이라는 메시지와 함께 을 throw ConfigurationErrorsException 합니다. 이 문제를 해결하려면 바인딩 구성에서 유효성 특성을 제거합니다.
생성자
CustomBinding() |
CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
CustomBinding(Binding) |
지정한 바인딩 값에서 CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
CustomBinding(BindingElement[]) |
바인딩 요소 배열에서 CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
CustomBinding(IEnumerable<BindingElement>) |
전체 채널 스택의 바인딩 요소를 사용하여 CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
CustomBinding(String) |
CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
CustomBinding(String, String, BindingElement[]) |
지정된 이름과 네임스페이스를 사용하여 바인딩 요소 배열에서 CustomBinding 클래스의 새 인스턴스를 초기화합니다. |
속성
CloseTimeout |
전송 중 예외가 발생하기 전에 연결을 끊기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
Elements |
사용자 지정 바인딩에서 바인딩 요소를 가져옵니다. |
MessageVersion |
바인딩을 사용하여 구성된 클라이언트 및 서비스에서 사용하는 메시지 버전을 가져옵니다. (다음에서 상속됨 Binding) |
Name |
바인딩의 이름을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
Namespace |
바인딩의 XML 네임스페이스를 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
OpenTimeout |
전송 중에 예외가 발생하기 전에 연결을 설정하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
ReceiveTimeout |
연결이 끊어지기 전에 애플리케이션 메시지가 수신되지 않는 비활성 상태로 유지될 수 있는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
Scheme |
사용자 지정 바인딩에 사용된 전송 URI 체계를 가져옵니다. |
SendTimeout |
전송 중 예외가 발생하기 전에 쓰기 작업을 완료하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
메서드
BuildChannelFactory<TChannel>(BindingParameterCollection) |
지정된 유형의 채널을 만들고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelFactory<TChannel>(Object[]) |
지정된 유형의 채널을 만들고 개체 배열에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
지정된 유형의 채널을 허용하고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
현재 바인딩이 개체 배열에서 지정된 요구 사항을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
현재 바인딩이 개체 배열에 지정된 기준을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CreateBindingElements() |
사용자 지정 바인딩에서 바인딩 요소의 제네릭 컬렉션을 반환합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetProperty<T>(BindingParameterCollection) |
요청한 형식화된 개체가 있으면 바인딩 스택의 해당 계층에서 반환합니다. (다음에서 상속됨 Binding) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ShouldSerializeName() |
바인딩 이름을 serialize해야 하는지 여부를 반환합니다. (다음에서 상속됨 Binding) |
ShouldSerializeNamespace() |
바인딩 네임스페이스를 serialize해야 하는지 여부를 반환합니다. (다음에서 상속됨 Binding) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
.NET