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