【发布时间】:2010-12-31 09:50:55
【问题描述】:
我有一个 GUI 客户端,它针对 WCF 服务运行,该服务作为 Windows 服务托管在服务器上。 WCF 服务在 PerCall InstanceContextMode 中运行,并且客户端有一个服务客户端的单例实例,我希望避免在每次调用时重新实例化单例,因为这让我的许多异步调用变得困难。
我的问题是,重启 Windows 服务后,客户端每次调用都会收到如下异常消息:
此通道不能再用于发送消息,因为输出会话由于服务器启动的关闭而自动关闭。通过将 DispatchRuntime.AutomaticInputSessionShutdown 设置为 false 来禁用自动关闭,或者考虑修改远程服务器的关闭协议。
解决此问题的最佳方法是什么?我可以在对服务客户端的所有调用周围放置 try-catch 子句,并在通信异常时重新实例化单例实例,但这将涉及大量样板代码..
【问题讨论】:
标签: wcf exception-handling protocolexception