क्या ग्राहक को 'गलती' वापस करने के लिए डब्ल्यूसीएफ सेवा प्राप्त करना संभव है? मुझे विश्वास है कि एसओएपी का उपयोग करते समय यह संभव है, लेकिन मैं जेएसओएन वापस लौटना चाहता हूं।जेएसओएन-स्वरूपित दोषों को वापस करने के लिए डब्ल्यूसीएफ सेवा
आदर्श रूप से, 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...");
}
}
कहाँ TestFault
इस तरह दिखता है:
[DataContract]
public class TestFault
{
public TestFault(string message)
{
this.Message = message;
}
[DataMember]
public string Message { get; set; }
}
पल में सेवा विन्यास में विशेष रूप से विशेष कुछ भी नहीं है।
इसका परिणाम एचटीएमएल-स्वरूपित त्रुटि के साथ '400 खराब अनुरोध' प्रतिक्रिया में होता है। (जब मैं includeExceptionDetailInFaults
, मैं 'कारण ...' देख सकते हैं और FaultException
का ब्यौरा, लेकिन TestFault
पर कोई विवरण नहीं।)
वेब सेवा JSON ठीक है जब एक Exception
(या FaultException
) नहीं किया जा रहा है देता है फेंक दिया।
कोई सुझाव ..?
अभी तक इस यहाँ http://iainjmitchell.com/blog/?p=142 –