【问题标题】:Wpf Application Crash on Client Machine客户端计算机上的 Wpf 应用程序崩溃
【发布时间】:2020-03-07 07:14:42
【问题描述】:

我的应用程序是“离线系统”
我们可以在该应用程序中下载约会,并可以在离线模式下使用这些应用程序,并且当我们有互联网可用时,可以上传该数据。 但我的问题是:在客户端系统上,无论有没有互联网,我们的应用程序都会崩溃,我不明白原因。下面是图片或错误消息。
当用户尝试以离线模式登录时,该消息来自登录屏幕

请有任何建议。
提前致谢。

【问题讨论】:

  • 错误就在你面前,很可能在尝试登录时(无论你的代码是什么)存在未处理的网络错误,因此异常导致异常崩溃。跨度>
  • 如果您分享背后的代码以及您的问题,这对任何试图帮助您的人来说都是一个很大的帮助。请查看stackoverflow.com/help/how-to-ask,以帮助您了解如何改进您在这里提出问题的方式。

标签: c# asp.net wpf xaml app.xaml


【解决方案1】:

这表明存在某种网络连接问题。找出原因的最佳方法是检查堆栈跟踪中提到的内部异常:

查看内部异常(如果存在)以获取更多详细信息

假设你有这种代码:

var httpClient = new HttpClient();
var message = httpClient.GetAsync(url).Result;

重写做这样的事情:

try {
    var httpClient = new HttpClient();
    var message = httpClient.GetAsync(url).Result;
} catch (Exception ex) {
    ExceptionDispatchInfo.Capture(ex.InnerException).Throw();
}

由于预计离线时会出现这些异常,所以当你得到它时,你应该等待并稍后重试。

或者,您可以使用网络可用性更改来启动您的上传功能

NetworkChange.NetworkAvailabilityChanged 
    += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);

【讨论】:

  • 我正在像这样处理 catch:catch (Exception ex) { string exp = "InnerException: " + ex.InnerException + ", Message: " + ex.Message + ", StackTrace: " + ex 。堆栈跟踪; MessageBox.Show(exp); }
  • 这是一个 DNS 问题。您无法将主机名解析为正确的 ip,这意味着您要么未连接到互联网,要么主机名错误。尝试在主机文件中手动添加带有 ip 的主机名,看看发生了什么。也可以从旅游控制台尝试nslookup https://<hostname>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多