2009-06-09 5 views
5

Mi aplicación web ASP.NET 2.0 incluye un servicio web que arroja varias excepciones junto con mensajes de error personalizados (por ejemplo, "No tiene acceso a este elemento", etc.). Estos se muestran en la pantalla, en un controlador de devolución de llamada ASP.NET AJAX.Desactive CustomErrors para servicio web solamente

El resto de la aplicación está cubierta por algunas páginas de error personalizadas, especificadas de la forma habitual en web.config.

<customErrors mode="RemoteOnly" defaultRedirect="Error.html"> 
     <error statusCode="404" redirect="NotFound.html" /> 
     <error statusCode="403" redirect="NoAccess.html" /> 
</customErrors> 

Mi problema es si tengo customErrors habilitadas en web.config, Voy a perder mis mensajes de error devueltos por el servicio web - en vez de eso se reemplazan con

"Hubo un error al procesar la solicitud" - que no es muy útil ni para mí ni para los usuarios.

¿Hay alguna manera de desactivar los errores personalizados solo para el servicio web?

Respuesta

4

Coloque su servicio web en un directorio aparte y coloque archivos web.config adicionales en este directorio. Cada directorio puede tener su propio web.config que contiene la configuración de este directorio (y directorios dentro de este directorio).

+0

Perfecto - gracias smok1 :) –

+0

¡Ningún problema! La única razón es que probablemente tendrá que actualizar dos archivos web.config al cambiar la configuración (por ejemplo, cuando decida cambiar la cadena de conexión, o algo así) a su aplicación web. – smok1

+0

@ smok1: solo necesita tener el elemento CustomErrors en el archivo .config anidado; no es necesario agregar nada que no desee cambiar. –

3

Sí, el custom errors element

se pueden definir en cualquier nivel de la jerarquía de archivos de la aplicación.

De modo que siempre que su WebService esté en una carpeta, puede agregar un web.config para esa carpeta y desactivarlos.

+0

Voy a votar esto también, gracias por su ayuda –