我有一个可以在浏览器和浏览器之外使用的Silverlight 5应用程序。当浏览器用完时,它应该能够使用以前下载的数据(XML和JPG)在没有Internet连接的情况下工作。
目前它可以工作,但我在启动过程中遇到了一个未处理的异常(由我的应用程序的UnhandledException事件处理程序捕获),向用户显示一条可怕的消息 - 类似于'内部错误 - 应用程序现在可能崩溃“。可选的详细信息为'E_UNEXPECTED'。我的开发机器和其他机器(包括使用MacOS X的客户端)都会发生错误。
当然,我可以改变信息,但这不是重点。
所以我的问题是:只有在离线启动时可能导致错误的错误,当被UnhandledException处理程序捕获时,错误似乎不会影响应用程序的稳定性?
答案 0 :(得分:0)
我找到了罪魁祸首(通过记录我的启动步骤):这是检查更新。
如果在没有可用连接的情况下拨打Application.CheckAndDownloadUpdateAsync()
,我会收到此异常。如果在启动检查更新之前检查连接是否可用(*),则异常消失。
http://msdn.microsoft.com/en-us/library/dd730310%28VS.95%29.aspx中没有记录这一点,因此它看起来像是Silverlight运行时中的一个错误。
(*)主要基于NetworkInterface.GetIsNetworkAvailable()
,加上一些自定义检查。