【问题标题】:WCF service:Fault Exceptions vs Error Message in Response Object [closed]WCF服务:响应对象中的故障异常与错误消息[关闭]
【发布时间】:2013-12-18 03:11:04
【问题描述】:

在 WCf 层发生任何异常的情况下,WCF 服务会发送故障异常,我在内部应用程序使用的 WCf 服务中广泛使用它,但我不确定外部客户端。

场景

假设我创建了一个 WCF 服务,该服务将通过 Internet 向我的客户公开,并且我将为每个服务调用收费。可能有不同的错误消息(身份验证失败/授权失败/验证错误)可以从服务返回

我正在考虑以下两种方法

Fault Exception: 创建一个实现 IErrorHandler 的 Generic ErrorHandler,为每种错误抛出 Fault 异常。然后客户端必须在他们的最后处理错误异常,在我看来有点复杂

响应 DTO: 响应 DTO 将包含填充错误详细信息的 IsError、ErrorMessage、ErrorCode 等属性。这对客户来说可能很容易,因为他们只会检查一些布尔变量来查找是否有任何错误。

所以这是问题

响应对象内的故障异常或错误消息是否应该从 WCF 发送?每种方法的优缺点是什么?

【问题讨论】:

  • 我已经改写了这个问题,让我知道它是否符合指南

标签: c# wcf web-services exception-handling


【解决方案1】:

在我目前从事的项目中,我们正在开发一个可公开访问的 API。我们正在创建一个响应 DTO 以将预期的错误消息传递给自定义。然后我们将错误异常包装在其他所有内容中,并使用客户标识符 (apikey) 记录错误。客户将得到一个没有真正细节的故障异常,但使用该客户 apikey,我们应该能够找到并解决具体问题。

【讨论】:

  • 感谢 Aaron +1,(在接受它作为答案之前等待其他人)您是否也在响应 DTO 中发送验证错误
  • 我们确实会根据我们的业务规则和我们想要揭示的内容发送一些基本的验证响应。然而,对于大多数请求,我们只是告诉他们错误的请求对象。我们记录特定错误,然后如果/当他们与我们联系并解决问题时,我们可以帮助他们进行故障排除。然而,我们的目标是希望通过我们的代码示例和文档,他们不需要做那么多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 2014-05-29
相关资源
最近更新 更多