请求在此应用程序池的工作进程中启动侦听器通道。
语法
HRESULT WebhostOpenListenerChannelInstance(
IN DWORD ProtocolHandle,
IN LPCWSTR AppPoolId,
IN DWORD ListenerChannelId,
IN PBYTE ListenerChannelBlob,
IN DWORD ListenerChannelBlobByteCount
);
parameters
ProtocolHandle
[IN]一个 DWORD
,它包含侦听器通道的协议句柄。
AppPoolId
[IN]包含侦听器通道的应用程序池 ID 的字符串。
ListenerChannelId
[IN]包含 DWORD
侦听器通道标识符的 。
ListenerChannelBlob
[IN]一个 , PBYTE
其中包含将工作进程连接到侦听器所需的信息。 数据对 Windows 进程激活服务不可见, (WAS) 。 有关详细信息,请参阅下面的“备注”部分。
ListenerChannelBlobByteCount
[IN]一个 DWORD
,它包含侦听器通道 BLOB 中的字节数。
返回值
HRESULT
。 可能的值包括(但并不限于)下表中的项。
值 | 说明 |
---|---|
S_OK | 指示操作成功。 |
E_INVALIDARG | 指示其中一个参数无效。 |
HRESULT_FROM_WIN32 ( ERROR_NOT_FOUND) | 指示尚未注册协议。 |
HRESULT_FROM_WIN32 (ERROR_PIPE_NOT_CONNECTED) | 指示侦听器适配器未连接到 Windows 进程激活服务。 |
备注
当侦听器通道收到其第一个请求时,或者当 Windows 进程激活服务通知侦听器适配器它可以启动侦听器通道的另一个实例时,将调用 该函数。
参数 ListenerChannelBlob
将传递给 Windows 进程激活服务、工作进程和协议管理器。 如果侦听器适配器按应用程序路由请求,则 BLOB 可能包含进程协议处理程序需要传递给协议管理器的应用程序密钥。 协议管理器需要应用程序密钥才能连接应用程序域协议处理程序。 BLOB 的详细信息留给协议编写器。
默认情况下,Windows 进程激活服务会建立一个重叠的回收进程,在该过程中,要关闭的工作进程一直保持运行状态,直到启动新的工作进程。 Windows 进程激活服务保存侦听器通道 BLOB,并将使用它来请求新的工作进程进行连接。 这意味着侦听器通道必须能够接受连接到它的多个进程。
例如,Windows 进程激活服务不管理侦听器通道与应用程序的关系 (,侦听器可以选择每个应用程序池具有多个侦听器通道,或者只有一个) 。 因此,Windows 进程激活服务无法确定侦听器适配器在发生更改时侦听器通道应发生的情况。 Windows 进程激活服务将仅通知侦听器适配器并允许它管理这些决策。
需要将侦听器通道访问控制列表 (ACL) 设置为应用程序池的标识。
要求
类型 | 说明 |
---|---|
客户端 | - 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 |