服务代理和会话

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

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

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