WebhostRegisterProtocol 函数

声明侦听器适配器支持的协议。

语法

HRESULT WebhostRegisterProtocol(  
   IN LPCWSTR ProtocolId,  
   IN VOID* pListenerCallbacks,  
   IN VOID* pContext,  
   OUT DWORD* pProtocolHandle  
);  

parameters

ProtocolId
[IN]包含此侦听器适配器支持的协议的字符串。

pListenerCallbacks
[IN]指向VOIDWEBHOST_LISTENER_CALLBACKS结构的指针。

pContext
[IN]侦听器适配器将传递的任意 VOID 指针。

pProtocolHandle
[OUT]指向 的 DWORD 指针,其中包含表示此协议的进程唯一键。

返回值

HRESULT。 可能的值包括(但并不限于)下表中的项。

定义
S_OK 指示操作成功。
HRESULT_FROM_WIN32 ( ERROR_ALREADY_EXISTS ) 指示此过程中已为此协议注册了侦听器适配器。
E_INVALIDARG 指示其中一个参数无效。
E_OUTOFMEMORY 指示堆内存已用尽。

备注

启动侦听器适配器时,必须先调用 WebhostRegisterProtocol 函数。 WebhostRegisterProtocol 是异步的,因此成功返回并不能保证调用成功。 WINDOWS 进程激活服务 (WAS) 使用 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 函数通知侦听器注册成功。 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 在 参数中 pListenerCallbacks 传递给此调用。

应为侦听器适配器设置超时,以等待 PFN_WEBHOST_LISTENER_CONFIG_MANAGER_CONNECTED 回调函数。 如果超时过期,应停止侦听器适配器服务并将其标记为失败。 此调用的成功返回表示客户端库正在等待 Windows 进程激活服务,并将尽可能连接。

不应将此回调函数中的侦听器服务状态设置为 SERVICE_RUNNING 。 仅当初始化完成且协议侦听器通常在PFN_WEBHOST_LISTENER_CONFIG_MANAGER_INITIALIZATION_COMPLETED通知) 后侦听 (时,才应将服务状态设置为 SERVICE_RUNNING

每当调用回调函数时,参数 pContext 将传递给侦听器适配器。 在实现使用同一回调结构的多个协议时,可以使用它。

若要使客户端库连接到 Windows 进程激活服务,必须满足以下条件:

  • <listenerAdapters>Was.config 文件中的配置部分必须声明运行侦听器适配器的协议和标识。

  • Windows 进程激活服务必须正在运行。

  • 侦听器适配器服务应注册为依赖于 Windows 进程激活服务。

要求

类型 说明
客户端 - Windows Vista 上的 IIS 7.0
- Windows 7 上的 IIS 7.5
- Windows 8 上的 IIS 8.0
- Windows 10 上的 IIS 10.0
服务器 - Windows Server 2008 上的 IIS 7.0
- Windows Server 2008 R2 上的 IIS 7.5
- Windows Server 2012 上的 IIS 8.0
- Windows Server 2012 R2 上的 IIS 8.5
- Windows Server 2016 上的 IIS 10.0
产品 - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0
- IIS Express 7.5、IIS Express 8.0、IIS Express 10.0
Header Listeneradapter.h

另请参阅

PFN_WEBHOST_LISTENER_CONFIG_MANAGER_INITIALIZATION_COMPLETED 函数
侦听器适配器导出的函数