呼叫取消
呼叫取消通知会取消 服务器端服务操作 和服务模型回调的操作。 此类取消的原因可能为以下两个原因之一:
- 由于调用 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 | 允许服务操作或服务模型回调注册取消通知。 |