Có thể nhận dịch vụ WCF trả lại lỗi '' cho khách hàng không? Tôi tin rằng điều này là có thể khi sử dụng SOAP, nhưng tôi muốn trả lại JSON.Dịch vụ WCF trả về lỗi định dạng JSON
Lý tưởng nhất, mã phản hồi HTTP sẽ được đặt thành thứ gì đó để cho biết đã xảy ra lỗi và sau đó chi tiết về sự cố sẽ có sẵn trong phản hồi JSON.
Hiện nay, tôi đang làm một cái gì đó như thế này:
[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...");
}
}
đâu TestFault
trông như thế này:
[DataContract]
public class TestFault
{
public TestFault(string message)
{
this.Message = message;
}
[DataMember]
public string Message { get; set; }
}
Không có gì đặc biệt đặc biệt trong cấu hình dịch vụ tại thời điểm hiện tại là.
Điều này dẫn đến phản hồi 'Yêu cầu không hợp lệ 400', với lỗi định dạng HTML. (Khi tôi includeExceptionDetailInFaults
, tôi có thể thấy 'Lý do ...' và chi tiết của FaultException
, nhưng không có chi tiết về TestFault
.)
Web trả về JSON ok khi một Exception
(hoặc FaultException
) không được ném.
Mọi đề xuất ..?
chưa một nỗ lực giải quyết này đây http://iainjmitchell.com/blog/?p=142 –