服务代理和会话

服务代理 具有会话和非基于会话的通道绑定的特殊行为。 如果基础通道绑定基于会话,则服务代理提供基于会话的语义。 在这种情况下,单个通道用于服务调用。 但是,如果通道绑定不是基于会话的,服务代理会为每个调用创建单独的通道。 但请注意,非基于会话的通道会共用,并可能重复使用。 在重用通道时,如果基础通道未出错,或者通道上的调用导致服务代理出错通道,则服务代理将通道保持打开状态。 请注意。 除非发生错误,否则一旦打开通道,只要服务代理处于打开状态并且仅在服务代理关闭时关闭,它就会保持打开状态。

如果通道绑定基于会话,并且基础通道发生故障,则服务代理状态机将转换为 WS_SERVICE_PROXY_STATE_FAULTED 状态。 对于基于非会话的通道绑定,基础通道中的错误不会导致代理转换为 WS_SERVICE_PROXY_STATE_FAULTED 状态。

有关服务代理及其与状态的关系的详细信息,请参阅 服务代理 主题。 有关不同通道绑定的示例,请参阅以下示例: