我们使用c#SOAP WebService,我们使用此WebService 来自ASP.NET Web应用程序。
WebService类具有以下编译器标记:
[WebService(Namespace = "http://myWebService/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
由于要求WebService也可以与JSON客户端通信,因此我们添加了此编译器标记:
[ScriptService]
方法标有
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
这一切都适用于SOAP客户端和JSON客户端。
但是有一个例外问题:
SOAP客户端可以处理WebService方法的SoapExceptions。
JSON客户端(javaScript和Android)仅获取状态 500和一些错误消息 - 他们不会因为我不知道的任何原因而获得异常对象。
Android Developer希望从WebService接收标准状态代码,以防出现问题 - 例如代码 404,403 ...因为他无法从WebService方法中获取错误对象。
重要说明: 我已经在web.config文件中将自定义错误变为“关闭” 因为在任何异常情况下总是发送“内部服务器错误”是低效的。
所以我的问题是: 我怎样才能做到这一点:
在WebService中抛出一个Exception,它将使用错误代码“404”和一些单独的错误消息序列化到JSON客户端。