WsAcceptChannel 函数 (webservices.h)

接受来自指定 侦听器的下一个传入消息。

语法

HRESULT WsAcceptChannel(
  [in]           WS_LISTENER            *listener,
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

参数

[in] listener

指向表示侦听器 的WS_LISTENER 结构的指针。 这是在创建通道时传递给 WsCreateChannelForListener 的侦听器。

[in] channel

指向表示要接受的通道 的WS_CHANNEL 结构的指针。

[in, optional] asyncContext

指向 WS_ASYNC_CONTEXT 数据结构的指针,其中包含用于异步调用函数的信息。 为同步操作传递 NULL 值。

[in, optional] error

指向 WS_ERROR 结构的指针,该结构在函数失败时接收其他错误信息。

返回值

如果函数成功,则返回NO_ERROR;否则,它将返回 HRESULT 错误代码。

返回代码 说明
WS_S_ASYNC
异步操作仍处于挂起状态。
WS_E_OPERATION_ABORTED
侦听器或通道已中止。
WS_E_OBJECT_FAULTED
侦听器出错。 请参阅“备注”部分。
WS_E_INVALID_OPERATION
侦听器或通道或两者都处于不适当的状态。 请参阅“备注”部分。
WS_E_ENDPOINT_DISCONNECTED
与远程终结点的连接已终止。
WS_E_OPERATION_TIMED_OUT
该操作未在分配的时间内完成。
WS_E_QUOTA_EXCEEDED
超出配额。
WS_E_INVALID_FORMAT
输入数据的格式不是预期的,或者没有预期的值。
E_OUTOFMEMORY
内存不足,无法完成操作。
E_INVALIDARG
一个或多个参数无效。
WS_E_SECURITY_VERIFICATION_FAILURE
对于收到的数据,安全验证未成功。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web Services 框架中的安全操作失败。
其他错误
此函数可能会返回上面未列出的其他错误。

注解

接受频道后,必须在不再需要通道时将其关闭,并通过调用 来释放资源
WsCloseChannel 函数,然后调用 WsFreeChannelWsResetChannel。 。

要使 WsAcceptChannel 成功,侦听器必须处于WS_LISTENER_STATE_OPEN状态,通道必须处于WS_CHANNEL_STATE_CREATED状态。 有关详细信息,请参阅 WS_LISTENER_STATEWS_CHANNEL_STATE 枚举。

如果侦听器处于 WS_LISTENER_STATE_FAULTED 状态,
WsAcceptChannel 会立即返回 WS_E_OBJECT_FAULTED 错误代码。 如果应用程序在循环中调用 WsAcceptChannel,则应用程序必须检查此错误,以便结束循环。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll