我应该为服务响应使用响应代码,例外或文本消息吗?

时间:2012-06-09 22:36:04

标签: c# asp.net .net wcf soa

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

我是否应该使用响应代码,例外或文本消息来获取服务响应以报告服务结果状态?

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

2 个答案:

答案 0 :(得分:4)

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

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

如果您的服务,或者您作为服务设计人员,不知道(未来)客户端应用程序想要对错误消息(显示或进程)做什么,请同时包含这两者。

答案 1 :(得分:0)

在我看来,最好是使用对客户有意义的响应枚举(代码)。除了它返回消息可能会增加WCF服务上的dataload。

E.g。

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