WCF Web HTTP 错误处理

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

WCF Web HTTP 错误处理

WebFaultException 类定义可用于指定 HTTP 状态代码的构造函数。随后会将此状态代码返回到客户端。WebFaultException 类的泛型版本 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 终结点的服务的错误异常编程模型。由于 HTTP 未定义元数据文档来说明错误行为,因此 WebFaultException 是服务器端功能,不适用于 WCF 客户端代理编程模型。

另请参见

概念

WCF Web HTTP 格式设置
定义和指定错误
处理异常和错误
发送和接收错误

其他资源

WCF Web HTTP 编程模型