我正在.Net中构建基于WCF的服务应用程序。我目前正在设计合同。
我是否应该使用响应代码,例外或文本消息来获取服务响应以报告服务结果状态?
它们将被Web应用程序和其他系统使用。
答案 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://blogs.msdn.com/b/brajens/archive/2007/04/23/exception-handling-in-wcf-web-service.aspx