Solucionar los problemas de la implementación de una solución de RIA Services
La tarea de resolver los problemas de una solución de WCF RIA Services presenta un desafío único porque puede producirse una excepción en una de las muchas diferentes capas. Es necesario saber cómo estas diferentes capas notifican errores para resolver de forma eficaz los problemas de una aplicación. En este tema se presentan estas capas y se proporcionan algunas técnicas para solucionar los problemas que surgen en las aplicaciones de RIA Services cuando se produce una excepción. Además, muchos de los problemas que pueden encontrarse en la implementación de RIA Services se han anticipado en la nueva guía de implementación. Para obtener información detallada, vea Guía para implementar soluciones de RIA Services.
Flujo de excepciones
En una aplicación de RIA Services , las excepciones fluyen en el orden siguiente, desde la capa de origen más baja hasta el cliente:
Servicio de dominio
Host de servicio de RIA Services
WCF
ASP.NET
IIS
Aplicación de Silverlight
Habilitar información detallada de errores de ASP.NET
De forma predeterminada, el elemento customErrors de un archivo Web.config se establece en RemoteOnly, lo que significa que un cliente remoto no recibirá la información detallada de errores de ASP.NET. Para depurar una aplicación, establezca customErrors en Off para poder ver la información detallada de errores de ASP.NET desde el cliente.
[!NOTA] No debe permitir que la aplicación esté disponible públicamente con customErrors establecido en Off, ya que el mensaje de error puede exponer información confidencial a los usuarios.
Utilizar Fiddler para inspeccionar errores
Todas las excepciones que se originan en un servicio de dominio se envían al cliente de Silverlight con el código de estado de error 200. Todas las excepciones producidas en la capa de WCF o en una capa inferior se envían al cliente de Silverlight con el código de estado 404. Puede ejecutar el depurador de HTTP Fiddler para ver el error real.
Desplazarse directamente al servicio de dominio
El desplazamiento directo al archivo .svc para el servicio de dominio suele ser un paso útil para ver si el servicio WCF está disponible. Sin embargo, la determinación de la ruta de acceso al archivo .svc no es sencilla porque el archivo .svc no existe en la solución. Puede desplazarse directamente al servicio de dominio en un explorador web utilizando el patrón siguiente:
http://[host]/[nombre de clase modificado para el servicio de dominio].svc
Puede determinar el nombre modificado de una clase utilizando el nombre completo de la misma y sustituyendo cada punto (.) por un guión (-). De ese modo, un servicio de dominio denominado:
ExampleApplication.Web.CustomerDomainService
tiene un archivo .svc denominado:
ExampleApplication-Web-CustomerDomainService.svc
Si este archivo se hospeda en el host local, puede desplazarse directamente al archivo navegando hasta:
http://hostLocal/ExampleApplication-Web-CustomerDomainService.svc
Si el servicio está disponible, verá una página web con información sobre servicios y sobre cómo se prueba un servicio. Si el servicio no está disponible, verá una página de error que puede tener información que le ayudará a determinar el problema. Si recibe un error, es probable que el origen de la excepción sea la capa de host de servicio de RIA Services.
Reemplazar el método OnError del servicio de dominio
Cuando se produce un error irrecuperable durante el procesamiento de una operación de DomainService, se llama al método OnError. Puede reemplazar este método para inspeccionar los errores antes de enviarlos al cliente.
Utilizar técnicas tradicionales de traza de WCF
Las excepciones producidas en la capa de WCF se solucionan del mismo modo que se haría en cualquier servicio WCF. Para obtener más información sobre la traza de diagnóstico para WCF Services, vea Seguimiento.
Una excepción que se origina en la capa de WCF no se mostrará en Fiddler. Puede resolver una excepción de servicio intentando desplazarse al archivo .svc. Si puede desplazarse al archivo .svc sin un error, pero el servicio sufre un error en tiempo de ejecución, el origen de la excepción puede ser la capa de WCF.
Comprobar la configuración de ASP.NET e IIS
En el caso de excepciones producidas en las capas de ASP.NET e IIS, la información de la aplicación de RIA Services no se incluye en la pila. Puede ver excepciones en este nivel para situaciones como las siguientes:
El archivo Web.config no tiene el elemento HttpModule correcto para la versión de IIS que está utilizando.
WCF no está activado en su servidor web.