是否有可能获得WCF服务以向客户端返回"错误"?在使用SOAP时我会相信这是可能的,但我想返回JSON.
理想情况下,HTTP响应代码将被设置为表示发生错误的内容,然后在JSON响应中可以获得问题的详细信息.
目前,我正在做这样的事情:
[ServiceContract]
public class MyService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[FaultContract(typeof(TestFault))]
public MyResult MyMethod()
{
throw new FaultException<TestFault>(new TestFault("Message..."), "Reason...");
}
}
Run Code Online (Sandbox Code Playgroud)
哪里TestFault是这样的:
[DataContract]
public class TestFault
{
public TestFault(string message)
{
this.Message = message;
}
[DataMember]
public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
目前服务配置没有什么特别之处.
这会导致"400错误请求"响应,并出现HTML格式错误.(当我includeExceptionDetailInFaults,我可以看到'原因...'和详细信息FaultException,但没有详细信息TestFault.)
当没有抛出Exception(或FaultException)时,Web服务返回JSON ok .
有什么建议..?
Ole*_*leg 14
所有您需要的东西都可以从.NET 4开始.有关详细信息,请参阅此处.例如:
throw new WebFaultException<string>(
"My error description.", HttpStatusCode.BadRequest);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12839 次 |
| 最近记录: |