【发布时间】:2014-04-01 13:10:59
【问题描述】:
我正在开发一个 WP8 应用程序。我在外部系统上创建了一个 Web 服务,然后在我的应用程序中调用这些 Web 服务方法:
ServiceReference1.WebServiceClient ws = new WebServiceClient();
try
{
ws.FetchInboxAsync(EmailId);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
现在,如果服务器关闭,我希望控件进入 catch 块,但它没有,我得到以下异常:
“System.ServiceModel.CommunicationException”类型的异常 发生在 System.ServiceModel.ni.dll 中但未在用户中处理 代码。
我确实意识到 web 服务调用方法是异步的,所以它的异常不会被 try catch 捕获。在论坛上,人们建议使用 await 关键字。但是当我写
等待 ws.FetchInboxAsync(EmailId);
我收到一个错误:无法等待 void。
我尝试了答案here 中提到的一些东西,但我仍然得到同样的异常
【问题讨论】:
标签: c# web-services windows-phone-8 async-await