2

我有一个带有 NetTcpBinding 和 DuplexChannel 自托管在控制台应用程序中的 WCF 服务。客户“订阅”WCF 服务,我收集到列表的回调。在客户端,我已将处理程序附加到故障和关闭事件,当我收到它们时,我只是再次重新连接客户端。

在测试服务崩溃时,我有一个奇怪的行为(对我来说):当客户端和服务都在本地主机上测试时,我只是杀死 WCF 服务进程并且客户端收到故障事件,然后一直尝试重新连接,直到服务又活了。

当我在生产服务器上部署服务并且客户端在另一个计算机上(通过互联网,不在同一个域中)时,当我终止托管进程时 - 客户端没有收到任何有关故障的通知,尽管我有正确的关闭方法当中止被发送到列表中的所有回调时的应用程序,当我以正确的方式关闭它时 - 客户端得到错误事件并正确地尝试重新订阅。

所以问题是,为什么会这样?问题不是如何保持活动连接,我想我找到了如何以另一种方式做到这一点(可靠的会话或 ping 服务)

我只想知道为什么部署时事件的行为不同?配置是一样的——我没有改变任何东西。

4

0 回答 0