通話取消
呼叫取消通知會取消 伺服器端服務作業 和服務模型回呼的作業。 這類取消可能是基於下列兩個原因之一:
- 服務主機已停止作業,因為呼叫 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 | 允許服務作業或服務模型回呼註冊取消通知。 |