作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我把属性 [FaultContract(typeof(ExceptionDetail))]
我的运营契约(Contract)。当我尝试将服务添加到客户端应用程序时,我收到此错误 - "Custom tool error: Failed to generate code for the service reference 'ServiceReference1'. Please check other error and warning messages for details."
但是当我注释掉 FaultContract 属性时,我可以将 wcf 服务引用添加到我的客户端应用程序中。
最佳答案
拥有 FaultContracts 的目的首先是可以从服务中传回 SOAP 错误,这不会破坏服务器和客户端之间的通信 channel (优雅且可互操作地处理 .NET 异常等错误条件),其次,使用 FaultContracts,您的服务器会抛出类型错误 (FaultException<T>
),您的客户端可以捕获这些错误。
如果您想要或需要真正具有互操作性,您需要:
FaultException<ArgumentOutOfRangeException>
,也就是说,创建一个“(无论是什么 .NET 异常)的故障”,然后在客户端上,捕获那些键入的 FaultException 并处理它们:
[FaultContract(typeof(ArgumentOutOfRangeException)]
[OperationContract]
public void CallService(.......)
try
{
clientProxy.CallService();
}
catch(FaultException<ArgumentOutOfRangeException> ex)
{
// handle the most specific exception first
}
catch(FaultException ex)
{
// handle all other, unspecific server faults
}
catch(CommunicationException ex)
{
// handle all other, client-proxy related WCF errors
}
catch(Exception ex)
{
// handle anything else....
}
关于WCF : FaultContract(typeof(ExceptionDetail)) issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2470607/
我把属性 [FaultContract(typeof(ExceptionDetail))]我的运营契约(Contract)。当我尝试将服务添加到客户端应用程序时,我收到此错误 - "Custom to
我是一名优秀的程序员,十分优秀!