如何在面向服务的架构中发送验证错误?

时间:2013-09-16 14:29:26

标签: c# wcf design-patterns architecture soa

我正在开发一个面向服务的应用程序,在我的服务公开的一个操作中,我需要做一些业务验证(比如传递给服务的日期应该超过3个月),并且如果验证失败。有关如何将此信息发送回网络服务用户的指南吗?我应该发送SOAP错误还是正常响应对象,指示出现故障并发出失败消息。

现在我正在抛出一个FaultException(OperationFailureDetail是我自己的类型,其中包含错误消息,如果它是一个严重的失败,如果它是批评失败,用户不能继续其他他可以)这种方法是否正确?

TIA。

2 个答案:

答案 0 :(得分:1)

我会说......这取决于......

验证错误不一定是“例外”。在我工作的地方,我们不会将验证错误视为例外,您的里程可能会有所不同。

我不会说你的方法是错误的,关于你返回给服务消费者的许多决策过程将归结为你对这个消费者的控制程度。即你在写这两项服务吗?消费者应用程序,或者您的消费者是外部第三方?是服务&消费者.Net基于?消费者是否可以访问该服务使用的DLL?所有这些要点最终都会影响您的决策。

所以,不。你没错,你的方法是100%有效的。无论是处理商店中处理事物的最佳方式,我都无法说出来。

答案 1 :(得分:0)

一种常用方法是将协议故障用于SQL连接问题等系统异常。制作人将理解这不是用户错误,可以在后台重试(用户甚至不知道)或通知用户稍后再试。

业务验证错误应该是正常的消息,应由业务逻辑处理。