对于Error 2104的修复网上有很多的解决办法,大多是因为IIS对Silverlight的MIME类型不支持等原因,但是通常情况下这些并不能解决问题。本文列出了如何解决自己遇到的2104错误,希望对您有所帮助。

        最近一直在忙一个Silverlight + ASP.NET的项目,在经历了Sprint2被接收后,然后Branch了新的Sprint3后发现自己的解决方案无法正常加载Silverlight应用的问题。显示错误是:

image

Line: 56
Error: Unhandled Error in Silverlight Application
Code: 2104   
Category: InitializeError      
Message: Could not download the Silverlight application. Check web server settings  

很奇怪的是同样的Solution在上一次是可以很好的被加载并运行的。按照网上的提示来检查IIS的MIME类型的设置,发现对.xap, .xaml, .xbap的定义都有。那到底是为什么呢?偶然的机会发现,在Silverlight的Web项目中,默认存放编译后的.xap的ClientBin目录为空,也就是说根本没有哪个Siliverlight控件所需要的源对象。恍然顿悟,如果没有.xap文件那初始化Silverlight对象的时候肯定会出错啊。

解决办法:右键点击Web项目并选择Project Denpendencies,在打开的对话框中将Silverlight项目作为Web项目的依赖项目,这样在每次编译时会首先去编译Silverlight项目并将.xap文件拷贝到Web项目的ClientBin(默认)目录中:

image

当然,对于某些没有运行过Silverlight项目的环境,先尝试添加MIME类型。

posted on 2010-04-08 13:50  Allan.  阅读(1473)  评论(0编辑  收藏  举报