我在客户端计算机上运行Windows服务,该服务器使用WCF与我们的服务器通信。基本流程如下:
连接必须始终保持打开状态,因为服务器可能需要随时与客户端通信。这就是为什么我们每隔几分钟刷新一次连接。
在大多数情况下,这个系统工作正常。但是,如果客户端具有不稳定的Internet连接,则通道将中止。这是在这种情况下发生的事情:
我正在试图找出如何捕获步骤3中发生的错误,以便我可以关闭当前连接并重新打开它。我目前有一个处理Faulted事件的函数,但是当连接丢失时不会触发此事件。我已经尝试过调查全局错误处理,但似乎大多数教程都是针对服务器端的,而不是客户端。此外,由于连接只是无限期地保持打开状态,因此我无法放置try / catch块,因为在它发生时没有实际运行的代码。
答案 0 :(得分:0)
我能够通过使用FirstChanceException事件处理程序来完成捕获这些异常。我不得不使用这个事件,因为异常是自动深入处理的,所以我无法抓住它们。
在Windows服务的OnStart功能中:
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.FirstChanceException, AddressOf HandleException
我编写的函数检查异常是否属于某种类型我知道连接失败并且我创建了一个新连接。