1

我正在开发一个面向服务的应用程序,在我的服务公开的一项操作中,我需要进行一些业务验证(例如传递给服务的日期应该大于过去 3 个月)并在验证失败时向用户发送消息。是否有关于如何将其发送回网络服务用户的指南?我应该发送一个 SOAP 故障还是一个正常的响应对象来指示存在故障以及带有该故障的消息。

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

TIA。

4

2 回答 2

1

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

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

我不会说你的方法是错误的,很多关于你返回给你的服务消费者的决策过程将归结为你对那个消费者有多少控制权。即,您是在编写服务和消费者应用程序,还是您的消费者是外部第三方?服务和消费者都基于 .Net 吗?消费者是否有权访问服务使用的 DLL?所有这些点最终都会影响你的决定。

所以不行。你没有错,你的方法是 100% 有效的。这是否是在您的商店处理事情的最佳方式,我无法说。

于 2013-09-16T20:26:15.320 回答
0

一种常用的方法是对 SQL 连接问题等系统异常使用协议故障。生产者会这样理解这不是用户的错,并且可以在后台重试(用户甚至不知道)或通知用户稍后再试。

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

于 2014-05-21T12:35:38.880 回答