Freigeben über


Anrufunterdrückung

Die Anrufabbruchbenachrichtigung bricht den Vorgang von serverseitigen Dienstvorgängen und Dienstmodellrückrufen ab. Eine solche Stornierung kann aus zwei Gründen erfolgen:

  • Der Diensthost hat Vorgänge aufgrund eines Aufrufs der WsAbortServiceHost--Funktion beendet.
  • Der zugrunde liegende Kanal hat einen Fehler ausgelöst.

Um eine Abbruchbenachrichtigung zu erhalten, muss der Dienstvorgang oder der Dienstmodellrückruf einen WS_OPERATION_CANCEL_CALLBACK Rückruf registrieren, indem die WsRegisterOperationForCancel-Funktion aufgerufen wird.

Optional kann der Dienstvorgang oder der Dienstmodellrückruf auch anwendungsspezifische Statusdaten und den WS_OPERATION_FREE_STATE_CALLBACK Rückruf registrieren.

Die Statusdaten werden dem WS_OPERATION_CANCEL_CALLBACK Rückruf zur Verfügung gestellt. Nach Abschluss des Anrufs wird der WS_OPERATION_FREE_STATE_CALLBACK Rückruf aufgerufen, um der Anwendung die Möglichkeit zu geben, die Statusdaten freizugeben.

Ein Codebeispiel finden Sie unter BlockingServiceExample.

Der Abbruchrückruf wird nur einmal für die Lebensdauer der serverseitigen Dienstvorgänge- oder Rückruffunktion aufgerufen.

Der Anrufabbruch ist für alle Diensthostrückrufe verfügbar, die WS_OPERATION_CONTEXT als Parameter annehmen.

Die folgenden API-Elemente beziehen sich auf die Anrufunterdrückung.

Rückruf Beschreibung
WS_OPERATION_CANCEL_CALLBACK Vom Dienstmodell aufgerufen, um einen Abbruch eines asynchronen Dienstvorgangs infolge eines abgebrochenen Herunterfahrens des Diensthosts zu benachrichtigen.
WS_OPERATION_FREE_STATE_CALLBACK Vom Dienstmodell aufgerufen, damit eine Anwendung Zustandsdaten bereinigen kann, die beim Abbruchrückruf registriert wurden.

 

Funktion Beschreibung
WsRegisterOperationForCancel Ermöglicht es einem Dienstvorgang oder einem Dienstmodellrückruf, sich für eine Abbruchbenachrichtigung zu registrieren.