Excepciones en SilverLight 2

Cuando estamos debugeando en Silverlight 2 y ocurre una excepcion, esta nos muestra el siguiente texto

 

An exception of type 'System.ServiceModel.ProtocolException' occurred in System.ServiceModel.dll but was not handled in user code
Additional information: [UnexpectedHttpResponseCode]
Arguments:Not Found
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=2.0.30226.2&File=System.ServiceModel.dll&Key=UnexpectedHttpResponseCode

Un texto nada descriptivo sobre el error que se ha producido, que no se nos muestre l texto completo de la excepción tiene su explicación, es para que el runtime de SilverLight pese menos a la hora de bajarlo, pero podemos configurar en nuestra máquina de desarrollo para que nos muestre el texto completo de la excepción.

 

Los assemblies del runtime de SilverLight estan instalados en el directorio C:Program FilesMicrosoft Silverlight2.0.30226.2 Estos assemblies no contienen ningún string para las excepciones, de manera que cuando una excepción es lanzada y no es capturada se muestra el mensaje generico que hemos visto antes.

 

Silverlight runtime with debug resources installed

Como podemos ver en el directorio en-us aparece el assembly debug.resources.dll en este assembly es donde se encuentran los mensajes completos de las excepciones para activarlos debemos de modificar el manifiesto de silverlight, concretamente el archivo C:Program FilesMicrosoft Silverlight2.0.30226.2slr.dll.managed_manifest con lo siguiente para cada assembly

<localizedassembly>
   <name>System.ServiceModel.debug.resources</name>
   <version>2.0.5.0</version>
   <publickeytoken>31bf3856ad364e35</publickeytoken>
   <relfolder>.</relfolder>
   <file>System.ServiceModel.debug.resources.dll</file>
</localizedassembly>

Despues de esta modificación el mensaje de la excepcion sera

 

An exception of type 'System.ServiceModel.ProtocolException' occurred in System.ServiceModel.dll but was not handled in user code
Additional information: The remote server returned an unexpected response: (404) Not Found

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *