【问题标题】:An exception of type 'System.Net.WebException'“System.Net.WebException”类型的异常
【发布时间】:2013-08-13 14:29:50
【问题描述】:

我正在开发 WP7-8 应用程序,它使用 RestClient 从 WebServer 获取信息。当我关闭互联网连接时,我看到:

“System.Net.WebException”类型的异常发生在 System.Windows.ni.dll 并且在托管/本机之前未处理 边界

这是什么意思?我该如何或应该修复它? 我的代码:

 RestSharp.RestClient _client;
_client = new RestClient { BaseUrl = BaseURL };
_client.Timeout = 50;

resourceString = "Http:\\blablabla"; 
var request = new RestRequest { RequestFormat = DataFormat.Xml, Resource = resourceString };
request.Timeout = 50;
request.IncreaseNumAttempts();

if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() != true)
{
    ErrorCallback("Internet connection Error");
    return;
}
_client.ExecuteAsync(request, response =>
{
    return response;
}

【问题讨论】:

  • 您应该在使用网络时使用 try/catch 块。当您正在进行网络活动并且连接被删除时,就会发生这种情况。你的程序应该优雅地处理它。
  • try/catch 块没有帮助
  • 你能说得更具体点吗? try catch 如何不能帮助捕获异常?
  • 它没有调用异常
  • 这可能不是它崩溃的地方。您应该调试它并将 Visual Studio 设置为在引发异常时中断。 Debug->Exceptions,然后选中 throw 下的所有框。一旦你得到了中断,查看调用堆栈,直到找到属于你的代码,然后将该区域包装在 try/catch 中。

标签: c# windows-phone-7 windows-phone-8 windows-phone restsharp


【解决方案1】:

那个例外是TimeoutException。您必须增加Timeout 属性才能让它完成请求,假设将其设置为4000。

【讨论】:

    【解决方案2】:

    这是问题的要点 - WebException 是一种通用方式,可以告诉您连接出现问题,而不必告诉您它是什么。如果你想这样看的话,它是包罗万象的。

    要真正了解问题出现的原因,您需要阅读 catch 块内的响应 - 服务器会为您提供更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2011-04-20
      相关资源
      最近更新 更多