WCF Web HTTP 错误处理

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

WCF Web HTTP 错误处理

WebFaultException 类定义可用于指定 HTTP 状态代码的构造函数。 随后会将此状态代码返回到客户端。 WebFaultException 类的泛型版本 WebFaultException<T> 可用于返回用户定义的类型,该类型中包含有关所出现错误的信息。 将使用由操作指定的格式序列化此自定义对象,并将它返回到客户端。 下面的示例演示如何返回 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 终结点的服务的错误异常编程模型。

请参阅