当我的代码中有异常时,我想将其作为 FaultException/WebFaultException 返回,具体取决于它是 REST 还是 SOAP。以下问题与我的项目的 REST 组件有关。触发了异常,我在调试窗口中看到了它(见图)。
我们清楚地看到 WebFaultException 正在被触发,但我在 JSON 中的响应不是 http badrequest 也不是我的异常消息,而是始终如下:
{"readyState":4,"responseText":"","status":202,"statusText":"Accepted"}
这是我的界面:
[WebInvoke(Method = "POST", UriTemplate = "/Package/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
[FaultContract(typeof(FaultException))]
[OperationContract]
string CopyZip(Stream zippedPackage);
这是它的实现:
public string CopyZip(Stream zippedPackage)
{
try
{
ZipCreator pck = new ZipCreator();
pck.CopyUploadedZip(zippedPackage);
return "Zipped";
}
catch (Exception ex)
{
//throw new FaultException(ex.Message);
throw new WebFaultException<string>(ex.Message, HttpStatusCode.BadRequest);
}
}