问候, 我正在开发WPF中的一些应用程序。客户端是用WPF编写的,WCF中的服务。有一种情况,客户端失去与服务器的连接(因为互联网问题)。然后他有以下错误: “通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态。” 和应用程序关闭。 显示此消息并且客户端在消息框上单击“确定”后,应用程序将关闭。我不希望它被关闭。我怎样才能做到这一点? 我正在使用ClickOnce部署,如果这将有所帮助,每次客户端运行它搜索新版本的应用程序。 我在创建频道时以下列方式处理异常
try
{
Response response = Channel.ProcessRequest(request);
return response;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return null;
}
finally
{
}
答案 0 :(得分:1)
似乎你的一揽子异常处理程序正在做这个伎俩。您正在捕获错误并将其显示给用户。但是,您将返回null。在没有看到任何其他代码的情况下,我只能猜测调用者不喜欢获得空响应并且应用程序死亡,尽管我期望一个未处理的异常。但是上游你还可以有另一个try / catch块,它会默默地忽略这个异常。除非你提供更多细节,否则没有人可以告诉你。