我正在从Silverlight Windows Phone 7应用程序中调用一个Web服务,如果Web服务可用,则正常工作。如果Web服务不可用,则会捕获未处理的异常,但我似乎无法自己捕获它。我的尝试如下:
//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)来检测它,但是即使Web服务没有运行,它仍返回CommunicationState.Opened。
有什么想法可以处理这个问题吗?
如果我错过了什么,请原谅,但我已经搜索过并没有找到解决方案。