Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 从webservice代理处理WCF异常_Web Services_Wcf_Wcf Client - Fatal编程技术网

Web services 从webservice代理处理WCF异常

Web services 从webservice代理处理WCF异常,web-services,wcf,wcf-client,Web Services,Wcf,Wcf Client,我有一个WCF服务.NET4托管在IIS中。我的服务合同有一种方法: [FaultContract(typeof(string))] 该方法的我的服务实现验证输入参数,并可能引发如下异常: if (string.IsNullOrWhiteSpace(siteName)) { throw new FaultException("siteName is required."); } 此服务的使用者程序是.NET 2控制台应用程序。在这个应用程序中,我通过右键单击引用并添加web引用生成了webs

我有一个WCF服务.NET4托管在IIS中。我的服务合同有一种方法:

[FaultContract(typeof(string))]
该方法的我的服务实现验证输入参数,并可能引发如下异常:

if (string.IsNullOrWhiteSpace(siteName)) { throw new FaultException("siteName is required."); }
此服务的使用者程序是.NET 2控制台应用程序。在这个应用程序中,我通过右键单击引用并添加web引用生成了webservice代理

当我尝试从客户端应用程序调用服务方法时,通过发送无效的siteName,我返回一个503 service Unavailable异常,而不是带有自定义错误消息的FaultException

如何使带有自定义错误消息的FaultException传播到客户端程序

更新:

我在客户端应用程序中遇到的例外情况如下:

System.ServiceModel.ServerTooBusyException: 位于的HTTP服务 他太忙了System.Net.Web 异常:远程服务器返回 错误:503服务器不可用。 在 System.Net.HttpWebRequest.GetResponse 在 System.ServiceModel.Channel.HttpChannelFactory.HttpRequestChannel.HttpCha nnelRequest.WaitForReplyTimeSpan 超时-内部异常的结束 堆栈跟踪--


问题是由web项目中的自定义HTTP模块引起的。因此,这并不完全是一个WCF问题,而是一个特定于我们的解决方案的问题。谢谢

好吧,如果您的客户机在.NET2.0上,并且您添加了Web引用,那么您基本上得到的是一个老式的Web服务,它对FaultException和其他WCF概念一无所知。为了捕获和处理WCF故障异常,您需要在客户端->.NET 3.0或更高版本上安装WCF,方法是使用Add service reference在.NET 4中创建一个新的控制台应用程序,但结果相同: