给定一个 svcutil 生成的 WCF 客户端,有没有办法查询客户端以查明底层绑定是否正在使用传输会话?
我想动态检查这一点,以便我可以编写一个 WCF 客户端包装器,该包装器可以安全地打开和关闭代理,同时考虑仅在传输会话正在进行时适用的通道故障情况。
我看到有一个 MyClient.InnerChannel.SessionID 可能会有所帮助。也许如果它不为空,则意味着传输会话处于活动状态。但我认为这可能是一个太大的假设。例如,我了解 wsHttpBinding 可以模拟传输会话。发生这种情况时,SessionId 可能是非空的,但可能不会有可能出现故障的真正传输会话。
我还看到我可以查看 MyClient.ChannelFactory.Endpoing.Binding,但我不确定从那里可以提供什么线索。