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