我有WCF REST Web服务,可以像往常一样设置状态代码和状态说明:
OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
response.StatusCode = statusCode;
response.StatusDescription = detail.Error;
但我想使用WebFaultException。不幸的是,当我运行我的代码时,它会返回{" Detail":#34; Not Found"}:
[Serializable]
[DataContract]
public class DtoError
{
public DtoError()
{
}
public DtoError(string error)
{
Error = error;
}
[DataMember]
public string Error { get; private set; }
}
var error = new DtoError(entityName + " is not existing");
throw new WebFaultException<DtoError>(error, HttpStatusCode.NotFound);
我可以返回自定义错误json对象吗?
答案 0 :(得分:0)
经过调查,我发现我们使用Rest Starter Kit中的WebServiceHost2而不是WebServiceHost。在该主机内部,我们必须使用WebProtocolException。所以现在我的工作代码看起来像这样:
throw new WebProtocolException(HttpStatusCode.NotFound, "Not Found", error, null);