WCF 기술 내부 6장(3)
3441 단어 WCF
Communication Object 유형은 객체를 제거할 수 있는 방법을 보여줍니다.일반적으로 Close와 Beginclose 방법은 우아한 방식으로 Communication Object 대상을 닫을 수 있지만, Abort 방법은 즉시 대상을 닫는다.
Close 메서드에는 비동기식 구현이 포함되어 있지만 Abort 메서드는 없습니다.
Fault 방법
보호 방법인Fault도 Communication Object 대상을 닫는 방식이지만, ICommunication Object 인터페이스에 속하지 않으며, Communication Object 대상의 하위 형식에만 적용됩니다.
Fault 메서드를 호출하면 State 속성이 Communication State로 변환됩니다.Faulted 및 OnFaulted 가상 메소드를 호출합니다.대부분의 경우 OnFaulted 메서드는 Abort 메서드를 사용합니다.
6.3 채널 형태 소개
메시지 교환 모드와 채널 형태의 관계
MEP
Sender
Receiver
데이터 보고서
IOutputChannel
IInputChannel
요청/응답
IRequestChannel
IReplyChannel
듀플렉스
IDuplexChannel
IDuplexChannel
P2P
IDuplexChannel
IDuplexChannel
채널은 System을 구현해야 합니다.ServiceModel.Channels.세션을 지원하기 위한 ISessionChannel
WCF에서 ISessionChannel
메시지 교환 모드와 세션 채널 형태의 관계
MEP
Sender
Receiver
데이터 보고서
IOutputSessionChannel
IInputSessionChannel
요청/응답
IRequestSessionChannel
IReplySessionChannel
듀플렉스
IDuplexSessionChannel
IDuplexSessionChannel
P2P
IDuplexSessionChannel
IDuplexSessionChannel
6.4 채널 인터페이스 및 기본 유형
IChannel 커넥터
public interface IChannel : ICommunicationObject
{
T GetProperty<T>() where T : class;
}
GetProperty
MessageVersion messageVersion = channel.GetProperty<MessageVersion>();
if (messageVersion != null)
{
}
데이터 보고 채널 IInputChannel 및 IOutputChannel
public interface IOutputChannel : IChannel, ICommunicationObject
{
EndpointAddress RemoteAddress { get; }
Uri Via { get; }
IAsyncResult BeginSend(Message message, AsyncCallback callback, object state);
IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state);
void EndSend(IAsyncResult result);
void Send(Message message);
void Send(Message message, TimeSpan timeout);
}
수신자가 데이터 보고 교환 모드에서의 역할에 대해 IInoutChannel은 수신 구성원만 정의하고 발송 구성원은 정의하지 않았다.
public interface IInputChannel : IChannel, ICommunicationObject
{
EndpointAddress LocalAddress { get; }
IAsyncResult BeginReceive(AsyncCallback callback, object state);
IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state);
IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state);
IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state);
Message EndReceive(IAsyncResult result);
bool EndTryReceive(IAsyncResult result, out Message message);
bool EndWaitForMessage(IAsyncResult result);
Message Receive();
Message Receive(TimeSpan timeout);
bool TryReceive(TimeSpan timeout, out Message message);
bool WaitForMessage(TimeSpan timeout);
}
수신 프로그램은 소극적으로 소식이 오기를 기다릴 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WCF 요청 본문이 너무 길어서 400 오류 해결 방안으로 돌아갑니다.오늘 WCF로 글을 추가할 때 POST 요청 본문이 일정 문자 수량(ContentLength > 1w)을 초과하면 서버가 항상 400 오류로 되돌아오는 것을 발견했습니다. 마지막으로 WCF가 요청 본문의 길이를 제한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.