WCF中的FaultException客户端无法捕获?
大家好,我在WCF(宿主在ASP.NET中)中写了个FaultException异常(由于简单异常,所以没有用FaultException<T>泛型):
// 接口
public interface IClientService
{
[OperationContract]
int Add(int a, int b);
}
// 实现
public class ClientService : IClientService
{
public int Add(int a, int b)
{
throw new FaultException("hello world");
}
}
客户端是WPF,在开发环境下,调用Add方法可以正常捕获到异常,异常类型为FaultException,
然后我部署到服务器A上,OK,没问题,异常也能正常捕获,
但我部署到服务器B上,异常无法正常捕获,客户端调用Add方法后,一直没有响应,也不报错,一直到请求超时才报请求超时的错,
以下是我多次实验的结果:
1.将WPF客户端拷贝到服务器B上,可以正常捕获异常,但在服务器之外却无法正常捕获异常,WCF地址配置也是正确的,即:异常无法在远程捕获,
2.我按照【https://www.cnblogs.com/GISerYang/archive/2012/09/10/2679340.html】网址上配置IIS却无效,异常仍然无法在远程客户端捕获,
3.我也配置了WCF的【includeExceptionDetailInFaults=true】也无效,
4.我在网站上建立了一个WebForm1.aspx,然后在此页面上直接throw new Exception,远程无法查看错误信息,服务器上可以查看到,
5.WCF不管是【throw new FaultException】还是【throw new Exception】都无法捕获,但本地开发环境都可以捕获,
为此我已经提出了两个问题贴,大家可以看看:
https://social.msdn.microsoft.com/Forums/zh-CN/4ea0ded3-829c-45e5-b799-14a21cbc4426/iis-?forum=2212
https://social.msdn.microsoft.com/Forums/zh-CN/b6d7ec51-9cd7-457e-b0d4-0279c50c55b8/-wcf-?forum=wcfzhchs
到底为什么无法捕获到异常?