我正在研究一个相当大的Silverlight 4应用程序(1个解决方案中的42个项目),而我正在为一个非常奇怪的问题搏斗。

该应用程序在调试构建中正常运行,即使在发行版中,它也会随附调试器(F5)运行,但是当它运行而无需调试Silverlight XAP负载时,然后仅显示一个空白页面。

我正在处理没有触发的应用程序_unhandledException,因此从中获取任何有用的信息几乎是不可能的,尤其是因为我无法使用附加的调试器复制此行为。

当附加调试器可能引起此问题时,运行时有什么区别?

编辑:我还应该补充说,调试构建也无需附加调试器即可运行。

有帮助吗?

解决方案

事实证明,问题是发行版构建执行一些优化,以改变调用组件。

我们使用反射和Debug Assembly.getCallingAssembly().getTypes()在IOC容器中注册类型。但是在发行模式下,调用组件是生成的匿名托管动力学组件,因此我们的类型未在IOC容器中注册,并且该应用程序以释放模式崩溃。

修复程序是使用this.getType()。汇编。

问题更复杂的是,当从IOC容器中抛出异常时,Silverlight仅显示一个空白页,因此很难识别故障原因。肯定有某种方法可以改变这种行为?

其他提示

IIS部署中空白页面的一个常见原因是缺乏MIME类型的定义。取决于Silverlight应用程序的类型,必须添加以下一种或多种类型:

.XAP应用程序/X-Silverlight-App .XAML应用程序/XAML+XML .xbap应用程序/X-MS-XBAP

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top