我是JSON的新手,但我过去做了一些SOAP WebServices。
我的最新c#-WebService(" * .asmx")由不同的客户使用:
- c#WebApp使用SOAP类和SOAP方法
- 一个Javascript通过ajax / JSON与WebService对话
- Android应用程序使用JSON与WebService进行通信
c#WebApp正确获取所有异常
但是JSON客户端得到的异常是错误的 - 无论如何
如果WebService抛出SoapException或它抛出
WebException - 所有JSON客户端获取的是Internal Server Error
。
[ScriptService]
[WebService(Namespace = "http://SvcAssessment/";)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class SvcVideoAssessment : adpWebService
[
// Implementation is here ...
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Call NewCall(string ticket, string name, Case cas, char status)
{
// generate an exception for testing
throw new WebException("no new calls available");
}
}
如果可以,我想抛出不同类型的例外情况 通过任何方式区分当前的Method-Call 来自脚本或来自SOAP客户端。
JSON客户端需要知道什么错误
已发生错误消息Internal Server Error
是不充分和误导。
答案 0 :(得分:2)
你需要做两件事:
1。)抛出新的Exception()而不是新的WebException()
2。)在配置部分添加到web.config:
<system.web>
<customErrors mode="Off"></customErrors>
</system.web>
然后您的ajax / JSON客户端将看到原始的异常消息