2012-04-23 97 views
0

是否有从WCF服务中引发既作为RESTful服务又作为SOAP服务的异常的好方法?从我迄今为止收集到的信息来看,SOAP服务应该抛出FaultExceptions,并且RESTful服务应该抛出WebProtocolException,以便在客户端轻松地获取错误细节。就我而言,通过2个端点 - RESTful和SOAP公开了相同的服务。我应该使用什么样的异常处理机制,以便将错误细节轻松传递给RESTful客户端和SOAP客户端?作为REST和SOAP服务公开的WCF服务的异常处理

+0

如果你还在项目的早期决定,我会建议不要使用相同的服务来肥皂和休息。这些是两个不同层次的抽象。为休息使用asp.net http api – 2012-04-23 20:52:40

+0

看到这个http://stackoverflow.com/questions/10288976/should-i-wrap-all-my-wcf-service-code-in-a-try-catch-block – userGS 2012-04-24 06:36:25

回答

1

SOAP和REST是公开服务功能的两种不同机制,异常在SOAP和REST中公开的方式也有所不同,正如您详细说明的那样。

基于HTTP的REST或REST是一种架构模式,它将HTTP作为协议。例外在应用程序应该得到翻译成HTTP错误代码,例如40倍,50倍等。例如

  • 400,用于请求问题
  • 401用于错误未经授权的访问
  • 500,你的请求的执行期间发生。

错误的详细信息可以与响应正文中的错误代码一起返回。

使用RESTful端点的客户端应该期待HTTP错误代码,并且应该处理它们。