WCF Web HTTP 错误处理

Windows Communication Foundation (WCF) Web HTTP 错误处理可用于从 WCF Web HTTP 服务返回指定了 HTTP 状态代码的错误,并且返回的错误详细信息使用与操作相同的格式(例如 XML 或 JSON)。

WCF Web HTTP 错误处理

WebFaultException 类定义一个构造函数,用于指定 HTTP 状态代码。 然后,此状态代码将返回到客户端。 WebFaultException 类的泛型版本使你能返回一个用户定义类型,该类型包含有关所发生错误的信息。 此自定义对象是使用操作指定的格式序列化的,并返回给客户端。 以下示例演示如何返回 HTTP 状态代码。

public string Operation1()
{
    // Operation logic  
   // ...
   throw new WebFaultException(HttpStatusCode.Forbidden);
}  

以下示例演示如何在用户定义的类型中返回 HTTP 状态代码和额外信息。 MyErrorDetail 是一个用户定义的类型,其中包含有关所发生错误的额外信息。

public string Operation2()
{
   // Operation logic  
   // ...
   MyErrorDetail detail = new MyErrorDetail()
   {  
      Message = "Error Message",  
      ErrorCode = 123,  
   }  
   throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);  
}  

上述代码返回一个 HTTP 响应,其中包含禁止状态码,并且正文包含 MyErrorDetails 对象的实例。 MyErrorDetails 对象的格式由以下因素决定:

有关这些值如何影响操作的格式的详细信息,请参阅 WCF Web HTTP 格式化

WebFaultException 是一个 FaultException,因此可用作公开 SOAP 终结点和 Web HTTP 终结点的服务的错误异常编程模型。

另请参阅