시간 초과 WCF 서비스
-
04-07-2019 - |
문제
WCF에서 타임 아웃은 어떻게 작동합니까? 예를 들어 구성 할 수 있다는 것을 알고 있습니다 SendTimeout 그리고 미주 시간 클라이언트 구속력. 그러나 그들은 어떻게 일합니까?
MSDN이 설명합니다 SendTimeout 처럼:
전송 작업을 완료하기 위해 제공된 시간 간격을 지정하는 시간대 값. 이 값은 0보다 크거나 같아야합니다. 기본값은 00:01:00입니다.
전송 작업/수신 작업이란 무엇입니까?
해결책
고객 입장에서:
- SendTimeout은 OperationTimeout을 초기화하는 데 사용됩니다. 이는 메시지를 보내기위한 전체 상호 작용을 통제합니다 (요청중인 케이스에서 회신 메시지를받는 포함). 이 타임 아웃은 CallbackContract 메소드에서 회신 메시지를 보낼 때도 적용됩니다.
- OpenTimeout 및 CloseTimeout은 채널을 열고 닫을 때 사용됩니다 (명시적인 시간 초과 값이 전달되지 않은 경우).
- 미주당이 사용되지 않습니다.
서버 측:
- 클라이언트 (콜백)와 동일한 시간을 보내고 열고 닫습니다.
- LecketImeout은 ServiceFramework 레이어에서 세션 IDLE 타임 아웃을 초기화하는 데 사용됩니다.
출처입니다 MSDN 포럼의 Brian McNamara.
다른 팁
"WCF의 시간 초과 및 기본값"을 참조하십시오. http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-andeir-default-values.aspx
바인딩-센트 타임 아웃, 채권 시간, OpenTimeout 및 CloseTimeout의 시간 초과. 바인딩의 구성 또는 코드를 통해 쉽게 설정할 수 있습니다. 그 기본값은 1 분입니다.
ServiceHost에는 OpenTimeout과 Closetimeout이 있습니다. OpenTimeout의 기본값은 1 분이며 CloseTimeout의 기본값은 10 초입니다.
클라이언트 측 채널의 타임 아웃. OperationTimeout이 있으며 채널을 IconTextChannel로 캐스팅하여 설정할 수 있습니다. 이에 대한 기본값도 1 분입니다. ChannelInitializationTimeout이라는 TCP Transport의 TTimeout 및 기본값은 5 초입니다.
ASPNET. 서비스 호스트 Close Timeout과 마찬가지로 종료 시간 초과가 있습니다. 기본값은 90 초입니다. Operation TimeOut과 마찬가지로 ExecutionTimeout은 기본값이 110 초입니다.
해당 게시물의 내용 외에도 클라이언트 엔드에 정의 된 작업 시간 초과도 있습니다. 이것 좀 봐: