如何处理未找到远程服务器的异常?

时间:2014-01-03 06:44:02

标签: c# wcf windows-phone-7 azure windows-phone-8

现在我正在开发一个使用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 中添加它

任何人都可以提供解决方案吗?还是更好的方式?

1 个答案:

答案 0 :(得分:0)

应该使用azure期望处理异常的类,而不是本机VisualStudio

问候。