Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
Asp.net WCF故障异常、SOAP故障和非.NET应用程序_Asp.net_Wcf_Webmethod_Asp.net 4.5 - Fatal编程技术网

Asp.net WCF故障异常、SOAP故障和非.NET应用程序

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中是

我正在开发我的第一个WCF WebMethod,并且正在研究错误处理

在花了一周时间阅读这篇文章之后,普遍的共识似乎是WCF WebMethods中的错误应该作为
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匹配的名称……您可以为字段命名任何您喜欢的名称,并让它们包含尽可能多或少量的数据,以满足您的需要。您只需要小心不要暴露敏感数据,例如服务器名称、数据库名称等。尝试使您的命名约定与行业命名标准保持一致始终是一个好主意。祝你好运,谢谢。在不久的将来,请继续关注我的更多问题…:-)