为什么我们需要WCF中的故障契约

为什么我们需要WCF中的故障契约,wcf,faultcontract,Wcf,Faultcontract,在WCF,我的手一直很脏。现在我想到的一个问题是关于WCF中的过失合同 我想知道我们为什么需要它。考虑一个示例应用程序,我在这里添加2个数字。 在回答中,我有两个字段 结果-成功/错误 错误-错误详细信息(代码+文本) 现在,如果我的WCF服务有任何异常,我可以在catch块中捕获它,并将值分配给响应对象 结果-成功/错误 错误-错误详细信息(代码+文本) 那么,故障契约从何而来呢?在您的示例中,您所做的是通过“返回码”向调用者指示发生了错误。故障契约代表了一种不同的方法:异常 异常被认为比返回

在WCF,我的手一直很脏。现在我想到的一个问题是关于WCF中的过失合同

我想知道我们为什么需要它。考虑一个示例应用程序,我在这里添加2个数字。 在回答中,我有两个字段

结果-成功/错误

错误-错误详细信息(代码+文本)

现在,如果我的WCF服务有任何异常,我可以在catch块中捕获它,并将值分配给响应对象

结果-成功/错误

错误-错误详细信息(代码+文本)


那么,故障契约从何而来呢?

在您的示例中,您所做的是通过“返回码”向调用者指示发生了错误。故障契约代表了一种不同的方法:异常

异常被认为比返回代码更好的原因有很多。请阅读以下示例:。这就是为什么WCF的架构师选择提供故障契约机制,而不是通过返回代码实现相同的功能


在您的情况下,故障契约方法将要求您不应返回响应对象。您只需返回一个int。如果发生任何异常情况阻止您返回int,您的代码将抛出一个强类型错误,向调用方指出哪里出了问题,以及如何可能地克服它。

这是一个老问题,但我仍然希望为将来的读者发布一些答案

找到这个网站

作者说,如果我们不使用故障契约,响应数据(从服务到客户端)将包括一些敏感数据

如果我们在WCF app.config或web.config中没有故障契约,并且我们仍然需要故障异常或web故障异常,我们将设置为:
,但是,如果我们设置了
,则必须具有高于服务操作的故障契约

嘿,乌里格,谢谢回复。这里重要的是,我正在捕获我的错误,并使用我的处理将代码+Desc返回给消费者(如果不是Int,我将这样说,如果是null,我将这样说。)所以仍然不确定为什么我需要错误契约。抱歉无知:-(