我遇到了一个非常有趣的可靠 session 行为。我正在使用 netTcp 绑定(bind) + 双工 channel + 可靠 session 。
当我尝试在 channel.faulted 上收听时,如果将安全模式设置为 transport ,当客户端断开连接时,faulted 事件将立即触发。
但是,当我将绑定(bind)的安全模式设置为无或消息时,故障事件不再在相同情况下触发。他们最终会在服务器端出现一半的 ReciveTimeout 故障,我理解这是因为可靠 session 会在那时发送心跳消息。
问题是:为什么 wcf 绑定(bind)没有按时出错?
这种情况的解决方法是我可以手动“ping”连接。
最佳答案
NetTcp 绑定(bind)默认使用 Transport security与 Windows credentials .默认情况下,除 BasicHttp 和 WebHttp 之外的所有绑定(bind)都是安全的。
关于没有传输安全性的 WCF 可靠 session 不会按时发生故障事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703732/