我是否应该为我的服务响应使用响应代码、异常或文本消息

本文关键字:响应 代码 异常 消息 文本 我的 服务 是否 | 更新日期: 2023-09-27 18:36:37

我正在.Net中构建一个基于WCF的服务应用程序。我目前正在设计合同。

我是否应该使用响应代码、异常或文本消息作为服务响应来报告服务结果状态?

它们将被 Web 应用程序和其他系统使用。

我是否应该为我的服务响应使用响应代码、异常或文本消息

你应该看看FaultContracts。请参阅 http://msdn.microsoft.com/en-us/library/system.servicemodel.faultcontractattribute.aspx

您的错误合约可以包括用于客户端处理的(基于字符串的)错误代码和/或用于向用户显示的文本消息。

如果您的服务,

或者更确切地说,您作为服务设计人员不知道(将来的)客户端应用程序希望对错误消息(显示或进程)执行什么操作,请同时包含两者。

在我看来,

最好的是使用对客户端有意义的响应枚举(代码)。除此之外,返回消息可能会增加 WCF 服务上的数据负载。

例如

throw new FaultException<InvalidArgumentException>(new InvalidArgumentException(),Constants.MaxLengthFields.PhoneNumber)), Response.OrderIdMissing);
[DataContract, Serializable]
enum Response
{
 [EnumMember]
 OrderIdMissing,
 [EnumMember]
 ProductCodeInvalid,
}

网络上有几篇文章。请浏览它们以获取更具体的信息。

http://blogs.msdn.com/b/brajens/archive/2007/04/23/exception-handling-in-wcf-web-service.aspx

http://blogit.create.pt/blogs/marcosilva/archive/2008/05/18/Developing-a-WCF-Service-%5F2D00%5F-Fault-Exceptions-AND-FAULT-Contracts.aspx

http://blogs.msdn.com/b/brajens/archive/2007/04/23/exception-handling-in-wcf-web-service.aspx