길이가 인 WCF 서비스가 있습니다. (이 질문을 위해 서비스 호출을 끊는 데 관심이 없습니다.) 클라이언트가 강제로 연결을 끊으면 클라이언트가 응답을받지 못할지라도 WCF 서비스는 계속 실행됩니다.WCF 서비스를 "공동으로"종단하는 방법 (기본 HTTP, 양방향이 아님)
믿을만한 메시징 (여기서는 적용되지 않는 것 같습니다), 양방향 채널/동작 (구현하거나 필요하지 않음)에 대한 정보를 찾았으며 해당 메시지를 "해체하는"방법을 이해했습니다. 서비스 요청.
while (!WCFRequest.CancellationPending && !FinishedWithLongOperation) {
DoOnePartOfTheLongOperation();
}
하지 않으면, 거기에 어떤이다 :
그러나, 나는 배경 작업자의 CancellationPending 속성과 같은 "간단한"방법이되지 않을 수도 있습니다 경우 서비스는 다음과 같이 보일 것입니다 궁금 해서요 그런 것을 추가하는 방법? 또는 가혹한 예외 (예 : TheadInterruptedException)로 WCF 스레드를 걷어차 는가?
서비스 자체는 완료된 작업 및 그러한보고와 관련하여 완전히 람등한 것으로 설계되었습니다.
WCF 서비스는 IIS 7에서 호스팅되며 관련성이있는 것으로 판단됩니다.