Asp.net WCF故障异常、SOAP故障和非.NET应用程序
我正在开发我的第一个WCF WebMethod,并且正在研究错误处理 在花了一周时间阅读这篇文章之后,普遍的共识似乎是WCF WebMethods中的错误应该作为Asp.net WCF故障异常、SOAP故障和非.NET应用程序,asp.net,wcf,webmethod,asp.net-4.5,Asp.net,Wcf,Webmethod,Asp.net 4.5,我正在开发我的第一个WCF WebMethod,并且正在研究错误处理 在花了一周时间阅读这篇文章之后,普遍的共识似乎是WCF WebMethods中的错误应该作为WebFaultException或FaultException抛出。此外,许多教程都告诉我们,使用FaultException(Of T)可以提供更好的功能。这似乎很简单 然后我发现一个声明,当WebMethod被非.NET应用程序(如Java等)使用时,抛出CLR异常是不好的,应该使用SOAP错误 有人能澄清一下,WCF 4.5中是
WebFaultException
或FaultException
抛出。此外,许多教程都告诉我们,使用FaultException(Of T)
可以提供更好的功能。这似乎很简单
然后我发现一个声明,当WebMethod被非.NET应用程序(如Java等)使用时,抛出CLR异常是不好的,应该使用SOAP错误
有人能澄清一下,WCF 4.5中是否内置了逻辑,以自动将FaultException
和FaultException(Of T)
转换为可由外部系统处理/理解的SOAP故障
一般来说,其他人如何将错误传达给外部系统?如果您使用FaultException(Of T),它将与其他SOAP技术(如Java)进行互操作。这篇文章解释了这一点。这就是我为Java客户机所做的工作。如果您需要更多详细信息,请告诉我。太好了,谢谢。我将包含对SOAP错误文档的引用以供参考:我将使用DataContract属性定义一个类,然后抛出一个FaultException(MyClass的)。我在MyClass中输入的字段是否重要,例如ErrorCode、ErrorDetail等?此外,它们还应该有一个特定的名称,例如与SOAP故障文档->消息和errorcodeGood匹配的名称……您可以为字段命名任何您喜欢的名称,并让它们包含尽可能多或少量的数据,以满足您的需要。您只需要小心不要暴露敏感数据,例如服务器名称、数据库名称等。尝试使您的命名约定与行业命名标准保持一致始终是一个好主意。祝你好运,谢谢。在不久的将来,请继续关注我的更多问题…:-)