asp.net - tipos - ¿Cómo manejo las excepciones lanzadas por los servicios de Asmx?
tipos de excepciones en c# (3)
El servicio ASP.NET ASMX ocasionalmente arroja excepciones. Sin embargo, el método Global.asax Application_Error no parece atraparlos. La pregunta es, ¿cómo configurar el controlador global de errores para atrapar y registrar estas excepciones?
¿Es el ASMX o el JavaScript de AJAX el que lanza la excepción?
Si es el Javascript, tendrá que escribir el manejo de excepciones en su JS, y luego volver a enviarlo al servidor para que sea rastreado en su almacén de datos de error, posiblemente a través de otra llamada a su servicio web.
Si se trata de ASMX, es probable que su Application_Error lo atrape, PERO como ASMX devuelve XML o JSON, no necesariamente aparecerá en su UI a menos que lo esté buscando.
Del lado del cliente I Simplemente envolvería su llamada al servicio en JavaScript. En el lado del servidor, el error debe registrarse en el registro del servidor como un. Error http 500
El problema básico (bueno, no es un problema) con el servicio web ASMX es que cualquier excepción detrás de la capa de servicio se lanza como excepción SOAP al cliente. Necesita capturar la excepción SOAP y luego buscar la excepción interna allí.
Un enfoque mejor y más limpio es implementar el controlador SOAP en su aplicación. Serialice la excepción SOAP a través de este y en el extremo del cliente para deserializarlo. De esta forma, tendrá control total sobre el flujo de excepción, en lugar de .NET Framework.
HTH