我有一个复杂的 WPF 应用程序,用于某种 PA 系统。它不时显示视频,有时它会在屏幕上播放音乐和不同的短信。
结构非常简单。有一个服务器有 2 种方法。SetMessage("字符串"); 和 GetMessage("String");
客户端每 5 秒通过 WCF 上的 HTTP 绑定连接到服务器并拉取 GetMessage()。管理应用程序连接到服务器并调用 SetMessage()。
在 App.xml.cs 中,我有 CurrentDomain_UnhandledException、OnDispatcherUnhandledException、TaskScheduler.UnobservedTaskException 和 application.Current.DispatcherUnhnandledException 的处理程序。他们都假设做nlog并继续操作。
App中有一个页面使用Media元素播放短视频。播放视频后,我不时遇到应用程序崩溃。
EventType : clr20r3
P1 : Client.exe
P2 : 0.0.2.0
P3 : 5226863e
P3 : mscorlib
P5 : 4.0.0.0
P6 : 4ba1da6f
P7 : 219
P8 : 10
P9 : system.invalidoperaionexception
现在这一切都很酷。然而问题是:
- 尽管有 4 个不同的异常处理程序,但我仍然收到异常
- 我无法在客户端计算机上调试
- 错误是随机的,但在我播放视频后发生。
- 停止和启动视频的代码在 Dispatcher.Invoke(new Action) 中。
- 在停止视频之前,我可能会离开页面并切换到另一个页面。
看起来我只是违反了一些访问权限并试图从另一个线程更改代码中的某些内容。
有趣的是,我尝试做 ILDasm 并找到 P7:219 并且代码中没有。
有什么办法可以捕捉到那个该死的异常吗?
(我实际上花了大约 30 分钟,试图在这里找到任何类似的问题,但所有的解决方案都已经应用在我的代码中)
感谢您的帮助。