呼叫取消

呼叫取消通知会取消 服务器端服务操作 和服务模型回调的操作。 此类取消的原因可能为以下两个原因之一:

  • 由于调用 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 允许服务操作或服务模型回调注册取消通知。