WCF 서비스를 "협동 적으로"종료하는 방법 (기본 HTTP, 비 이중)

user2864740

실행 하는 시간 오래 걸리는 WCF 서비스가 있습니다. (이 질문에 대해서는 서비스 요청을 끊는 데 관심이 없습니다.)

그러나 클라이언트가 강제로 연결을 끊으면 클라이언트가 응답을받지 않더라도 WCF 서비스가 계속 실행되어 완료됩니다.

신뢰할 수있는 메시징 (여기에는 적용되지 않는 것 같음), 이중 채널 / 동작 (구현하거나 요구하지 않는 것)에 대한 정보를 찾았으며 서비스 요청을 "분리"하는 방법을 이해했습니다.

그러나 백그라운드 작업자의 CancellationPending 속성과 같은 "간단한"메서드가 없는지 궁금합니다. 그러면 서비스가 다음과 같이 보일 것입니다.

while (!WCFRequest.CancellationPending && !FinishedWithLongOperation) {
   DoOnePartOfTheLongOperation();
}

그렇지 않은 경우이를 추가 할 방법이 있습니까? 또는 가혹한 예외 (예 : TheadInterruptedException)로 WCF 스레드를 걷어차나요?

서비스 자체는 완료된 작업 및보고에 대해 완전히 멱 등성을 갖도록 설계되었습니다.


WCF 서비스는 IIS 7에서 호스팅되며 관련이있을 수 있습니다.

user2864740

IIS 에서 HTTP / HTTPS 끝점으로 호스팅 되는 WCF 서비스의 경우 여기에서 작동 하는 HttpResponse.IsClientConnected (TM)를 사용하고 있습니다.

참고 : 이는 연결 해제를 올바르게 감지하는 호스팅 서버 (예 : IIS)의 기능에 따라 다릅니다. 일반적으로 이들은 순서에 따라 분리되어야합니다. YMMV.

그러면 코드는 다음과 기능적으로 동일합니다.

while (!FinishedWithLongOperation) {
    if (Connection.ClientConnectedStatus == ClientStatus.Disconnected) {
       throw new Exception("Client definitely disconnected!");
    }
    DoOnePartOfTheLongOperation();
}

노트:

  • "Connection"은 Dependency Injection을 통해 삽입되며 이론적으로 다른 스택으로 변경 될 수 있습니다.
  • .. ClientConnectedStatus는 {Connected, Disconnected, Unknown} 중 하나를 반환합니다. 중단은 클라이언트가 "확실히 연결이 끊어진"경우에만 발생하므로 ..
  • .. IIS / HTTPContext가없는 경우 ClientConnectedStatus는 항상 Unknown을 반환하고 잠재적 인 잘못된 연결되지 않은 상황을 방지합니다 (예 : 그렇지 않은 경우 호스팅되는 경우).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

앱이 종료되면 서비스를 중지하는 방법 android

분류에서Dev

서비스 응답에 WCF HTTP 코드를 표시하는 방법

분류에서Dev

WCF 서비스를 종료하는 새 메서드를 만드는 방법은 무엇입니까?

분류에서Dev

WCF 서비스 : 오류를 이해하기 위해 서버 로그를 찾는 방법은 무엇입니까?

분류에서Dev

WCF Websocket 서비스 "스키마 http와 일치하는 기본 주소를 찾을 수 없습니다"오류

분류에서Dev

애플리케이션 / 활동이 종료 될 때 시스템 종료 서비스를 방지하는 방법

분류에서Dev

Android에서 스 와이프하여 앱이 종료 될 때 웹 서비스 (Http 요청)를 호출하는 방법은 무엇입니까?

분류에서Dev

비동기 서브 쉘 종료를 처리하는 방법

분류에서Dev

컨트롤러에서 WCF 데이터 서비스를 사용하는 방법 (MVC5, EF6, WCF 5.6)

분류에서Dev

비동기 WCF 서비스 작업을 구현하는 이유

분류에서Dev

채널 팩토리가 WCF 서비스 메타 데이터를 얻는 방법

분류에서Dev

WCF 웹 서비스에서 http GET 요청을 만드는 방법

분류에서Dev

WCF 서비스에서 HealthChecksUI를 사용하는 방법

분류에서Dev

SignalR 서비스 중지 / 종료 방법

분류에서Dev

systemd 서비스가 중지 될 때 시스템을 종료하도록하는 방법이 있습니까?

분류에서Dev

Android에서 javascript를 사용하여 restfull wcf 웹 서비스에서 데이터를 검색하는 방법

분류에서Dev

IIS 7에 WCF 서비스를 게시하는 방법

분류에서Dev

Xamarin Forms wcf 서비스를 사용하는 방법

분류에서Dev

비동기 작업이있는 WCF 웹 서비스

분류에서Dev

인 텐트 서비스를 종료하는 방법

분류에서Dev

서비스를 올바르게 종료하는 방법

분류에서Dev

WCF 서비스가 실행 중인지 확인하는 가장 빠른 방법

분류에서Dev

Xamarin.Forms Portable 클래스 라이브러리에서 WCF 서비스를 사용하는 방법

분류에서Dev

JMeter로 WebHttpBinding이있는 WCF 서비스의 부하 테스트를 수행하는 방법

분류에서Dev

WCF 서비스에서 서비스를 준비하고 제시하는 방법은 무엇입니까?

분류에서Dev

Microsoft JWT Token Handler를 사용하여 webHttpBinding 기반 WCF 서비스를 보호하는 방법

분류에서Dev

WCF 서비스를 실행하기 전에 IIS를 실행하는 방법은 무엇입니까?

분류에서Dev

데이터를 일괄 적으로 반환하는 WCF 서비스를 빌드하는 방법

분류에서Dev

iOS Objective C에서 wcf json 서비스를 휴식하기 위해 특정 데이터 형식을 게시하는 방법

Related 관련 기사

  1. 1

    앱이 종료되면 서비스를 중지하는 방법 android

  2. 2

    서비스 응답에 WCF HTTP 코드를 표시하는 방법

  3. 3

    WCF 서비스를 종료하는 새 메서드를 만드는 방법은 무엇입니까?

  4. 4

    WCF 서비스 : 오류를 이해하기 위해 서버 로그를 찾는 방법은 무엇입니까?

  5. 5

    WCF Websocket 서비스 "스키마 http와 일치하는 기본 주소를 찾을 수 없습니다"오류

  6. 6

    애플리케이션 / 활동이 종료 될 때 시스템 종료 서비스를 방지하는 방법

  7. 7

    Android에서 스 와이프하여 앱이 종료 될 때 웹 서비스 (Http 요청)를 호출하는 방법은 무엇입니까?

  8. 8

    비동기 서브 쉘 종료를 처리하는 방법

  9. 9

    컨트롤러에서 WCF 데이터 서비스를 사용하는 방법 (MVC5, EF6, WCF 5.6)

  10. 10

    비동기 WCF 서비스 작업을 구현하는 이유

  11. 11

    채널 팩토리가 WCF 서비스 메타 데이터를 얻는 방법

  12. 12

    WCF 웹 서비스에서 http GET 요청을 만드는 방법

  13. 13

    WCF 서비스에서 HealthChecksUI를 사용하는 방법

  14. 14

    SignalR 서비스 중지 / 종료 방법

  15. 15

    systemd 서비스가 중지 될 때 시스템을 종료하도록하는 방법이 있습니까?

  16. 16

    Android에서 javascript를 사용하여 restfull wcf 웹 서비스에서 데이터를 검색하는 방법

  17. 17

    IIS 7에 WCF 서비스를 게시하는 방법

  18. 18

    Xamarin Forms wcf 서비스를 사용하는 방법

  19. 19

    비동기 작업이있는 WCF 웹 서비스

  20. 20

    인 텐트 서비스를 종료하는 방법

  21. 21

    서비스를 올바르게 종료하는 방법

  22. 22

    WCF 서비스가 실행 중인지 확인하는 가장 빠른 방법

  23. 23

    Xamarin.Forms Portable 클래스 라이브러리에서 WCF 서비스를 사용하는 방법

  24. 24

    JMeter로 WebHttpBinding이있는 WCF 서비스의 부하 테스트를 수행하는 방법

  25. 25

    WCF 서비스에서 서비스를 준비하고 제시하는 방법은 무엇입니까?

  26. 26

    Microsoft JWT Token Handler를 사용하여 webHttpBinding 기반 WCF 서비스를 보호하는 방법

  27. 27

    WCF 서비스를 실행하기 전에 IIS를 실행하는 방법은 무엇입니까?

  28. 28

    데이터를 일괄 적으로 반환하는 WCF 서비스를 빌드하는 방법

  29. 29

    iOS Objective C에서 wcf json 서비스를 휴식하기 위해 특정 데이터 형식을 게시하는 방법

뜨겁다태그

보관