ChannelDispatcher 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
채널을 수락하여 서비스에 연결하는 구성 요소입니다.
public ref class ChannelDispatcher : System::ServiceModel::Dispatcher::ChannelDispatcherBase
public class ChannelDispatcher : System.ServiceModel.Dispatcher.ChannelDispatcherBase
type ChannelDispatcher = class
inherit ChannelDispatcherBase
Public Class ChannelDispatcher
Inherits ChannelDispatcherBase
- 상속
예제
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
serviceHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorServiceObject");
// Enable MEX.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);
serviceHost.Open();
IChannelListener icl = serviceHost.ChannelDispatchers[0].Listener;
ChannelDispatcher dispatcher = new ChannelDispatcher(icl);
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count);
ChannelDispatcherCollection dispatchers = serviceHost.ChannelDispatchers;
foreach (ChannelDispatcher disp in dispatchers)
{
Console.WriteLine("Binding name: " + disp.BindingName);
}
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:8001/Simple")
Dim serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
serviceHost.AddServiceEndpoint(GetType(ICalculator), New WSHttpBinding(), "CalculatorServiceObject")
' Enable MEX.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
serviceHost.Description.Behaviors.Add(smb)
serviceHost.Open()
Dim icl As IChannelListener = serviceHost.ChannelDispatchers(0).Listener
Dim dispatcher As New ChannelDispatcher(icl)
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count)
Dim dispatchers As ChannelDispatcherCollection = serviceHost.ChannelDispatchers
For Each disp As ChannelDispatcher In dispatchers
Console.WriteLine("Binding name: " & disp.BindingName)
Next disp
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()
설명
ChannelDispatcher 개체는 특정 URI(수신 URI)의 IChannelListener를 서비스 인스턴스에 연결합니다. 각 ServiceHost 개체는 해당 서비스에 대한 서로 다른 수신기 및 수신 URI에 연결된 여러 개의 ChannelDispatcher 개체를 가질 수 있습니다.
메시지가 도착하면 ChannelDispatcher는 연관된 각 EndpointDispatcher 개체에 쿼리하여 엔드포인트에서 메시지를 수락할 수 있는지 여부를 확인한 다음 수락할 수 있는 엔드포인트에 메시지를 전달합니다. EndpointDispatcher 개체는 메시지의 대상 주소가 ChannelDispatcher 속성과 일치하고 메시지 동작이 AddressFilter 속성과 일치할 경우 ContractFilter로부터 받는 메시지를 처리합니다.
채널 세션의 수명과 동작을 제어하는 모든 속성을 사용하여 ChannelDispatcher 개체를 검사하거나 수정할 수 있습니다. 여기에는 EndpointDispatcher 외에도 사용자 지정 IChannelInitializer 개체, IChannelListener, ServiceHost 및 연결된 InstanceContext가 포함됩니다.
생성자
ChannelDispatcher(IChannelListener) |
ChannelDispatcher 클래스의 새 인스턴스를 초기화합니다. |
ChannelDispatcher(IChannelListener, String) |
ChannelDispatcher 클래스의 새 인스턴스를 초기화합니다. |
ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) |
ChannelDispatcher 클래스의 새 인스턴스를 초기화합니다. |
속성
AsynchronousTransactedAcceptEnabled |
수신기에 대해 처리된 Accept 메서드 호출이 비동기적인지 여부를 나타내는 값을 가져옵니다. |
BindingName |
서비스를 구성하는 데 사용되는 바인딩의 이름을 가져옵니다. |
ChannelInitializers |
채널을 처음 만들 때 채널을 검사하고 상태를 추가하는 데 사용할 수 있는 IChannelInitializer 개체 집합을 가져옵니다. |
DefaultCloseTimeout |
채널 디스패처를 닫는 데 허용되는 기본 시간 간격을 가져옵니다. |
DefaultOpenTimeout |
채널 디스패처를 여는 데 허용되는 기본 시간 간격을 가져옵니다. |
Endpoints |
메시지를 채널 엔드포인트에 전달하는 엔드포인트 디스패처를 가져옵니다. |
ErrorHandlers |
엔드포인트에 대한 사용자 지정 오류 처리 기능을 삽입하는 데 사용할 수 있는 IErrorHandler 개체 집합을 가져옵니다. |
Host |
디스패처에 연결된 서비스에 대한 호스트를 가져옵니다. |
Host |
파생 클래스에서 재정의된 경우 채널 디스패처에 연결된 서비스 호스트를 가져옵니다. (다음에서 상속됨 ChannelDispatcherBase) |
IncludeExceptionDetailInFaults |
오류에 예외에 대한 세부 정보를 포함시킬지 여부를 나타내는 값을 가져오거나 설정합니다. |
IsDisposed |
통신 개체가 삭제되었는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
IsTransactedAccept |
수신기에 대한 Accept 메서드 호출이 트랜잭션에서 수행되는지 여부를 나타내는 값을 가져옵니다. |
IsTransactedReceive |
수신기에 대한 Receive 메서드 호출이 트랜잭션에서 수행되는지 여부를 나타내는 값을 가져옵니다. |
Listener |
채널 디스패처에 연결된 수신기를 가져옵니다. |
ManualAddressing |
채널 디스패처에서 요청/응답 메시지에 주소 헤더를 추가하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
MaxPendingReceives |
채널당 허용되는 보류 메시지의 최대 수를 가져오거나 설정합니다. |
MaxTransactedBatchSize |
트랜잭션된 일괄 처리의 최대 크기를 가져오거나 설정합니다. |
MessageVersion |
사용되거나 예상되는 SOAP 메시지 및 WS-Addressing 버전을 가져오거나 설정합니다. |
ReceiveContextEnabled |
ReceiveContext의 사용 여부를 가져오거나 설정합니다. |
ReceiveSynchronously |
디스패처가 동기 호출을 사용하여 채널에서 메시지를 읽는지 여부를 지정하는 값을 가져오거나 설정합니다. |
SendAsynchronously |
메시지의 비동기 전송 여부를 가져오거나 설정합니다. |
ServiceThrottle |
채널 디스패처에 연결된 서비스에 대한 서비스 스로틀을 가져오거나 설정합니다. |
State |
통신 개체의 현재 상태를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
ThisLock |
상태 전환 중에 클래스 인스턴스를 보호하는 상호 배타적인 전용 잠금을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
TransactionIsolationLevel |
트랜잭션의 기본 격리 수준을 가져오거나 설정합니다. |
TransactionTimeout |
서비스 대신 디스패처에서 만든 새 트랜잭션의 기본 제한 시간을 지정하는 값을 가져오거나 설정합니다. |
메서드
Abort() |
통신 개체가 현재 상태에서 Closing 상태로 즉시 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
Attach(ServiceHostBase) |
채널 디스패처를 호스트에 연결합니다. |
Attach(ServiceHostBase) |
파생 클래스에서 재정의된 경우 채널 디스패처를 특정 호스트에 연결합니다. (다음에서 상속됨 ChannelDispatcherBase) |
BeginClose(AsyncCallback, Object) |
통신 개체를 닫기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
지정된 제한 시간 내에서 통신 개체를 닫기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
통신 개체를 열기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
지정된 시간 간격 내에서 통신 개체를 열기 위한 비동기 작업을 시작합니다. (다음에서 상속됨 CommunicationObject) |
Close() |
통신 개체가 현재 상태에서 Closed 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
Close(TimeSpan) |
통신 개체가 지정된 시간 간격 내에 현재 상태에서 Closed 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
CloseInput() |
수신기에서 새 채널을 수락하지 못하도록 합니다. |
Detach(ServiceHostBase) |
서비스 호스트를 채널 디스패처에서 분리합니다. |
Detach(ServiceHostBase) |
파생 클래스에서 재정의된 경우 채널 디스패처를 특정 호스트에서 분리합니다. (다음에서 상속됨 ChannelDispatcherBase) |
EndClose(IAsyncResult) |
통신 개체를 닫기 위한 비동기 작업을 완료합니다. (다음에서 상속됨 CommunicationObject) |
EndOpen(IAsyncResult) |
통신 개체를 열기 위한 비동기 작업을 완료합니다. (다음에서 상속됨 CommunicationObject) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Fault() |
통신 개체가 현재 상태에서 Faulted 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
GetCommunicationObjectType() |
통신 개체의 형식을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnAbort() |
채널 디스패처에 연결된 수신기를 중지합니다. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
지정된 시간 간격 내에 완료해야 하는 디스패처의 채널 수신기를 닫기 위해 비동기 작업을 시작합니다. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
지정된 시간 간격 내에 완료해야 하는 디스패처의 채널 수신기를 열기 위해 비동기 작업을 시작합니다. |
OnClose(TimeSpan) |
지정된 시간 간격 내에 디스패처에 연결된 채널 수신기를 닫습니다. |
OnCloseAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. |
OnCloseAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. (다음에서 상속됨 CommunicationObject) |
OnClosed() |
채널 디스패처에 연결된 엔드포인트 디스패처의 닫기를 추적합니다. |
OnClosing() |
통신 개체가 Closing 상태로 전환되는 중에 호출됩니다. (다음에서 상속됨 CommunicationObject) |
OnEndClose(IAsyncResult) |
디스패처의 채널 수신기를 닫기 위해 비동기 작업을 완료합니다. |
OnEndOpen(IAsyncResult) |
디스패처의 채널 수신기를 열기 위해 비동기 작업을 완료합니다. |
OnFaulted() |
통신 개체가 동기 오류 작업의 호출로 인해 Faulted 상태로 전환된 후 해당 통신 개체에 대한 처리를 삽입합니다. (다음에서 상속됨 CommunicationObject) |
OnOpen(TimeSpan) |
채널 디스패처에 연결된 수신기를 엽니다. |
OnOpenAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. |
OnOpenAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. (다음에서 상속됨 CommunicationObject) |
OnOpened() |
엔드포인트에 디스패치하는 데 사용되는 필터 테이블을 채우고 유효성을 검사합니다. |
OnOpening() |
채널 디스패처가 호스트에 연결되는지 여부를 확인합니다. |
Open() |
통신 개체가 Created 상태에서 Opened 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
Open(TimeSpan) |
통신 개체가 지정된 시간 간격 내에 Created 상태에서 Opened 상태로 전환되도록 합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposed() |
통신 개체가 삭제되면 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposedOrImmutable() |
통신 개체의 State 속성이 Created 상태로 설정되지 않은 경우 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
통신 개체가 Opened 상태가 아니면 예외를 throw합니다. (다음에서 상속됨 CommunicationObject) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
이벤트
Closed |
통신 개체가 Closed 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Closing |
통신 개체가 Closing 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Faulted |
통신 개체가 Faulted 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Opened |
통신 개체가 Opened 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
Opening |
통신 개체가 Opening 상태로 전환될 때 발생합니다. (다음에서 상속됨 CommunicationObject) |
명시적 인터페이스 구현
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. (다음에서 상속됨 CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. (다음에서 상속됨 CommunicationObject) |
확장 메서드
CloseHelperAsync(ICommunicationObject, TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. |
GetInternalCloseTimeout(CommunicationObject) |
채널을 수락하여 서비스에 연결하는 구성 요소입니다. |
적용 대상
.NET