Llamo a un servicio web desde una aplicación Silverlight Windows phone 7 que funciona bien si el servicio web está disponible. Si el servicio web no está disponible, se captura una excepción no controlada, pero parece que no puedo atraparla. Mi intento es el siguiente:Windows phone 7, silverlight: cómo atrapar EndpointNotFoundException al llamar al servicio web asíncrono?
//Get list of providers from Webservice
RSAServiceClient proxy = new RSAServiceClient();
proxy.GetSuppliersCompleted += new System.EventHandler<GetSuppliersCompletedEventArgs>(ProxyGetSuppliersCompleted);
try
{
proxy.GetSuppliersAsync();
}
catch (EndpointNotFoundException)
{
//TODO: Handle webserice not being available
}
catch (Exception)
{
throw;
}
Pero esto no captura la excepción y, obviamente, no GetSuppliersCompleted de ser llamado así que no puedo cogerlo allí.
Pensé que podría detectarlo comprobando el estado de conexión (proxy.State) pero esto a pesar de que el servicio web no funciona devuelve CommunicationState.Opened.
¿Alguna idea es donde puedo manejar esto?
Disculpas si me he perdido algo pero he buscado y no he encontrado una solución.
ProxyGetSuppliersCompleted no se llama porque una EndpointNotFoundException se detecta como "no controlada" en Reference.cs que genera Visual Studio. – Fishcake
Lo siento, lo malentendí. Porque mientras depuraba Visual Studio estaba entrando en Reference.cs, no continuaba. Si continúo la ejecución (o no estoy depurando), el error realmente se detecta en ProxyGetSuppliersCompleted. Aclamaciones. – Fishcake
Gracias por los detalles Fishcake – alexandrekow