共用方式為


通話取消

呼叫取消通知會取消 伺服器端服務作業 和服務模型回呼的作業。 這類取消可能是基於下列兩個原因之一:

  • 服務主機已停止作業,因為呼叫 WsAbortServiceHost 函式。
  • 基礎通道已引發錯誤。

若要接收取消通知,服務作業或服務模型回呼必須藉由呼叫WsRegisterOperationForCancel函式來註冊WS_OPERATION_CANCEL_CALLBACK回呼。

或者,在註冊取消通知時,服務作業或服務模型回呼也可以註冊應用程式特定的狀態資料和 WS_OPERATION_FREE_STATE_CALLBACK 回呼。

狀態資料可供 WS_OPERATION_CANCEL_CALLBACK 回呼使用。 在呼叫完成時, 會呼叫WS_OPERATION_FREE_STATE_CALLBACK 回呼,讓應用程式有機會釋放狀態資料。

如需程式碼範例,請參閱 BlockingServiceExample

伺服器端服務作業 或回呼函式的存留期內,只會呼叫取消回呼一次。

呼叫取消適用于所有採用 WS_OPERATION_CONTEXT 作為參數的服務主機回呼。

下列 API 元素與呼叫取消有關。

回呼 描述
WS_OPERATION_CANCEL_CALLBACK 由服務模型叫用,以通知非同步服務作業的取消,因為服務主機已中止。
WS_OPERATION_FREE_STATE_CALLBACK 由服務模型叫用,以允許應用程式清除向取消回呼註冊的狀態資料。

 

函式 描述
WsRegisterOperationForCancel 允許服務作業或服務模型回呼註冊取消通知。