J'appelle un service Web à partir d'une application Silverlight Windows Phone 7 qui fonctionne correctement si le service Web est disponible. Si le service Web n'est pas disponible, une exception non gérée est interceptée, mais je ne semble pas capable de l'attraper moi-même. Ma tentative est la suivante:Windows Phone 7, silverlight - Comment intercepter EndpointNotFoundException lors de l'appel du service Web asynchrone?
//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;
}
Mais cela ne veut pas attraper l'exception et, évidemment, GetSuppliersCompleted jamais ce qu'on appelle je ne peux pas l'attraper là-bas.
J'ai alors pensé que je pourrais être capable de le détecter en vérifiant l'état de la connexion (proxy.State) mais cela malgré le fait que le service web ne fonctionne pas retourne CommunicationState.Opened.
Une idée est où je peux gérer cela? Excuses si j'ai manqué quelque chose mais j'ai cherché et n'ai pas trouvé une solution.
ProxyGetSuppliersCompleted n'est pas appelé car une exception EndpointNotFoundException est interceptée comme "non gérée" dans Reference.cs qui est générée par Visual Studio. – Fishcake
Désolé, j'ai mal compris. Parce que pendant le débogage de Visual Studio se cassait dans Reference.cs je ne continuais pas. Si je continue l'exécution (ou ne débogue pas) l'erreur est en effet attrapée dans ProxyGetSuppliersCompleted. À votre santé. – Fishcake
Merci pour le détail Fishcake – alexandrekow