假设我有一个连接到 WCF 服务或消息队列的 .NET 客户端应用程序。在程序正常执行期间,可能会出现连接丢失,或者用户可能已被管理员强制注销,或者管理员向应用程序发送消息以更改并登录到另一个 WCF 服务器(例如某些 WCF 服务器)。手动负载平衡的形式)。
只有当许多低级方法中的任何一个关联进行 WCF 调用并且失败时,客户端应用程序才会知道这一点。
当发生这种情况时,我希望应用程序及其所有窗口以某种方式被禁用/隐藏,以便出现对话框/启动窗口并重新连接,一旦成功,窗口就会再次显示。
如何做到这一点?我看到的问题是,首先发现问题的代码位于最低级别(即可能是由于单击主窗口顶部的对话框窗口上的按钮而导致的)。有点需要程序彻底翻转才能直观地处理它。因此我假设有一些模式或框架可以帮助解决这个问题?
最佳答案
不幸的是,没有一个很好的方法可以做到这一点,因为由它引起的异常将在 WCF 调用可能发生的任何地方开始,并向上直到有东西捕获它们。对于 HTTP 绑定(bind),您知道什么时候会发生,因为 WCF 仅在您进行显式调用时执行任何操作,因此您可以捕获任何断开/超时异常并适本地处理它们。
对于消息队列或 TCP 绑定(bind),我认为它可能会变得有点困惑,但策略是相同的。每当您进行 WCF 调用时,您都需要注意适当的异常,然后应用程序必须调用一些可以按照您想要的方式更改 UI 的函数。
关于c# - 对连接丢失使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893663/