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
对象的格式由以下因素决定:
服务操作指定的
ResponseFormat
或 WebGetAttribute 特性的 WebInvokeAttribute 参数值。通过访问Format,获取OutgoingWebResponseContext属性的值。
有关这些值如何影响操作的格式的详细信息,请参阅 WCF Web HTTP 格式化。
WebFaultException 是一个 FaultException,因此可用作公开 SOAP 终结点和 Web HTTP 终结点的服务的错误异常编程模型。