Я звоню в веб-службу из приложения Silverlight для Windows Phone 7, которое прекрасно работает, если веб-служба доступна. Если веб-сервис недоступен, возникает необработанное исключение, но я, похоже, не могу его поймать сам. Моя попытка заключается в следующем:
//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;
}
Но это не ловит исключение, и, очевидно, GetSuppliersCompleted никогда не вызывается, поэтому я не могу поймать его там.
Затем я подумал, что смогу обнаружить его, проверив состояние соединения (proxy.State), но, несмотря на то, что не запущенный веб-сервис возвращает CommunicationState.Opened.
Есть идеи, где я могу с этим справиться?
Извиняюсь, что что-то пропустил, но я искал и не нашел решения.