Silverlight OOB приложение неуловено изключение при офлайн стартиране

Имам приложение Silverlight 5, което може да работи в браузър и извън него. Когато свърши браузърът, той трябва да може да използва предварително изтеглени данни (XML и JPG), за да работи без интернет връзка.

В момента работи, но имам необработено изключение по време на стартиране (което се улавя от манипулатора на събития UnhandledException на моето приложение), което се показва на потребителя с плашещо съобщение – нещо като „Вътрешна грешка – приложението може да се срине сега.“ като незадължителните подробности са „E_UNEXPECTED“. Грешката възниква както на моята машина за разработка, така и на други, включително клиент, използващ MacOS X.

Разбира се, мога да променя съобщението, но не това е важното.

И така, въпросът ми: какво може да причинява грешка само при стартиране офлайн, грешка, която, когато бъде уловена от манипулатор на UnhandledException, изглежда не засяга стабилността на приложението?


person jv42    schedule 17.12.2012    source източник


Отговори (1)


Открих виновника (като регистрирах стъпките си при стартиране): това е проверката за актуализации.

Ако извикам Application.CheckAndDownloadUpdateAsync(), когато няма налична връзка, получавам това изключение. Ако проверя дали е налична връзка (*), преди да стартирам проверката за актуализации, изключението изчезва.

Това не е документирано в http://msdn.microsoft.com/en-us/library/dd730310%28VS.95%29.aspx, така че изглежда като грешка в средата за изпълнение на Silverlight.

(*) Базирано предимно на NetworkInterface.GetIsNetworkAvailable(), плюс някои персонализирани проверки.

person jv42    schedule 17.12.2012