我们运行商业Silverlight应用程序.当我们在IIS中升级我们的网站时,我们的一些用户需要清除他们的浏览器历史记录才能获得最新的更新.
这是愚蠢的,你可以想象.
如果他们没有清除他们的浏览器历史记录,一些用户会得到这个,
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C; .NET4.0E; BRI/2) Timestamp: Thu,16 Jun 2011 02:41:49 UTC Message: Unhandled Error in Silverlight Application Unable to retrieve the module type Car.CarList.InitModule,Car.CarList,Version=1.0.123.17153 from the loaded assemblies. You may need to specify a more fully-qualified type name. at Microsoft.Practices.Composite.Modularity.ModuleInitializer.HandleModuleInitializationError(ModuleInfo moduleInfo,String assemblyName,Exception exception)
更新:我开始理解这个问题.看看小提琴输出,
/ClientBin/Main.xap?ignore-20/06/2011%209:30:19%20a.m. /ClientBin/CarList.xap
Silverlight应用程序XAP文件的最后写入文件已添加到Main.xap文件中,如此处所述,
http://codeblog.larsholm.net/2010/02/avoid-incorrect-caching-of-silverlight-xap-file/
解决方法
好的,这肯定解决了它.
我的模块目录加载看起来像这样,
protected override IModuleCatalog GetModuleCatalog() { var CarListModule = new ModuleInfo() { ModuleName = "CarList",ModuleType = "Car.CarList.InitModule,Version=1.0.0.0",Ref = "CarList.xap",InitializationMode = InitializationMode.ondemand,}; // blah }
我改成了这个,Ref = "CarList.xap?Version=1.0.0.0",}; // blah }
每个版本的查询字符串都不同,因此强制它加载XAP文件而不使用缓存版本.
我们的构建服务器找到上面的文本Version = 1.0.0.0并替换真实版本号.这包括ModuleType文本中的版本号.要对应构建服务器,还要在实际模块中设置要匹配的版本号.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。