我需要从SOAP Web服务中抛出一个JSON异常

时间:2015-06-09 10:41:28

标签: json

我是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 是不充分和误导。

1 个答案:

答案 0 :(得分:2)

你需要做两件事:

1。)抛出新的Exception()而不是新的WebException()

2。)在配置部分添加到web.config:     <system.web>      <customErrors mode="Off"></customErrors>     </system.web>

然后您的ajax / JSON客户端将看到原始的异常消息