2

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

我应该在我的服务响应中使用响应代码、异常或文本消息来报告服务结果状态吗?

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

4

2 回答 2

4

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

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

如果您的服务,或者更确切地说是您作为服务设计者,不知道(未来)客户端应用程序想要对错误消息(显示或处理)做什么,请同时包含两者。

于 2012-06-09T22:43:56.123 回答
0

在我看来,最好的方法是使用对客户有意义的响应枚举(代码)。除此之外,返回消息可能会增加 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

于 2012-06-09T23:08:40.660 回答