How do I handle exceptions thrown by asmx services

2019-04-11 14:56发布

ASP.NET ASMX service occasionally throws exceptions. However, global.asax Application_Error method do not seem to catch them. The question is, how to configure global error handler to catch and log these exceptions?

3条回答
Bombasti
2楼-- · 2019-04-11 15:55

Is it the ASMX or the AJAX JavaScript which is throwing the exception?

If it's the Javascript, you'll need to write exception handling into your JS, and then push that back to the server to be tracked in your error datastore--possibly via another call to your webservice.

If it's the ASMX then it's probably getting caught by your Application_Error, BUT as ASMX returns XML or JSON it won't necessarily get displayed on your UI unless you're looking for it.

查看更多
戒情不戒烟
3楼-- · 2019-04-11 15:56

Basic problem (well it is not a problem) with ASMX web service is that any exception behind the service layer is thrown as SOAP exception to client. You need to catch SOAP exception and then look for inner exception there.

A better and clean approach is you implement SOAP handler in your application. Serialize the SOAP exception through this and on client end deserialize it. This way you will have complete control over exception flow, rather than .net framework.

HTH

查看更多
叛逆
4楼-- · 2019-04-11 16:00

Client-side I Would simply wrap your call to the service in a JavaScript. On the server-side the error should be logged in your server log as an. http 500 error

查看更多
登录 后发表回答