现在我正在开发一个使用Azure服务的Windows Phone 8应用程序
但我得到一个例外如下:
System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
Stack trace:
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
at CaptWP.CAPTService.Service1Client.Service1ClientChannel.EndgetRandomID(IAsyncResult result)
at CaptWP.CAPTService.Service1Client.CaptWP.CAPTService.IService1.EndgetRandomID(IAsyncResult result)
at CaptWP.CAPTService.Service1Client.OnEndgetRandomID(IAsyncResult result)
at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
检查Azure服务器后,我发现Azure因帐户余额不足而停止服务。
但如何在客户端解决问题?也许有时服务器不可用或断开连接。几乎所有的操作都需要在我的应用程序中从服务器获得响应,因此我必须解决此问题以避免应用程序不稳定。
我想在每个操作中添加try....catch....
以与服务器通信,但Windows Phone 8中的参考方法是异步的
service.getRandomIDAsync();
private void service_getRandomIDCompleted(object sender, CAPTService.getRandomIDCompletedEventArgs e)
{
string id = e.Result.ToString();
}
如何捕捉异常?另外,我必须在代码中添加这么多try..catch
块。所以我想在服务参考
Reference.cs
中添加它
任何人都可以提供解决方案吗?还是更好的方式?
答案 0 :(得分:0)
应该使用azure期望处理异常的类,而不是本机VisualStudio
问候。