2

我有一个情况,我有两个程序(一个 exe 和一个 dll 加载到另一个第三方 exe 的进程空间)使用本地计算机 wcf 服务(使用网络命名管道绑定)相互通信请求。第三个主机 exe 开始托管该服务。这一切都很好(无论如何到目前为止......我仍在学习),但我必须考虑如果通道故障或服务超时会发生什么。检查和处理故障以及保持通道活动的最佳实践是什么?

就我而言,让应用程序保持打开或关闭由用户决定,我们确实有一些用户倾向于让它们在夜间、周末等时间保持打开状态……在我看来,这可能会打开故障或服务中断,我不知道如何恢复。任何帮助将不胜感激。

4

1 回答 1

1

首先,你为什么要让频道无限期地活着?

想象一下,您正在连接到一个数据库,您想在一天内从中读取数据。您会在早上创建数据库连接,然后在晚上关闭它吗?

在 WCF 中为每个调用构建一个通道相对便宜,除非您知道您将在几秒钟内彼此进行多次调用,在这种情况下您应该重用该通道。

编辑

这篇文章解释了如何做到这一点。这非常复杂,在代码中为绑定设置一个巨大的超时值可能更容易(如帖子末尾所建议的那样):

做 WCF 回调超时

编辑

谷歌上有很多关于这个的东西:http: //bit.ly/10ZPWE2

于 2013-05-16T09:28:52.957 回答