Web services 从webservice代理处理WCF异常
我有一个WCF服务.NET4托管在IIS中。我的服务合同有一种方法: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
[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中创建一个新的控制台应用程序,但结果相同: