Udostępnij za pośrednictwem


Anulowanie połączenia

Powiadomienie o anulowaniu wywołania anuluje operacje operacji usługi po stronie serwera i wywołania zwrotne modelu usługi. Takie anulowanie może być z jednego z dwóch powodów:

  • Host usługi zatrzymał operacje z powodu wywołania funkcji WsAbortServiceHost.
  • Kanał bazowy spowodował błąd.

Aby otrzymać powiadomienie o anulowaniu, operacja usługi lub wywołanie zwrotne modelu usługi muszą zarejestrować wywołanie zwrotne WS_OPERATION_CANCEL_CALLBACK, wywołując funkcję WsRegisterOperationForCancel.

Opcjonalnie, w ramach rejestracji w celu powiadomienia o anulowaniu, operacja usługi lub wywołanie zwrotne modelu usługi mogą również rejestrować dane stanu specyficzne dla aplikacji i WS_OPERATION_FREE_STATE_CALLBACK wywołania zwrotnego.

Dane stanu są udostępniane WS_OPERATION_CANCEL_CALLBACK wywołania zwrotnego. Po zakończeniu wywołania wywołania wywołania zwrotnego WS_OPERATION_FREE_STATE_CALLBACK jest wywoływana w celu udzielenia aplikacji możliwości zwolnienia danych stanu.

Aby zapoznać się z przykładem kodu, zobacz BlockingServiceExample.

Wywołanie zwrotne anulowania jest wywoływane tylko raz w okresie istnienia operacji usługi po stronie serwera lub funkcji wywołania zwrotnego.

Anulowanie wywołań jest dostępne dla wszystkich wywołań zwrotnych hosta usługi, które przyjmują WS_OPERATION_CONTEXT jako parametr.

Następujące elementy interfejsu API odnoszą się do anulowania wywołań.

Wywołania zwrotnego Opis
WS_OPERATION_CANCEL_CALLBACK Wywołana przez model usługi w celu powiadomienia o anulowaniu operacji asynchronicznej usługi w wyniku przerwanego zamknięcia hosta usługi.
WS_OPERATION_FREE_STATE_CALLBACK Wywoływany przez model usługi, aby umożliwić aplikacji czyszczenie danych stanu zarejestrowanych za pomocą wywołania zwrotnego anulowania.

 

Funkcja Opis
WsRegisterOperationForCancel Umożliwia operacji usługi lub wywołania zwrotnego modelu usługi w celu zarejestrowania się w celu powiadomienia o anulowaniu.