Flex 页面空白或Error #2032: 流错误处理办法

日前用flex、arcgis做了一个地图显示的页面,本机调试没问题,发布后放到用户服务器上(win2003,ie6)ie6显示页面空白,换搜狗浏览器显示Error #2032,只显示进度条,客户端用ie6显示空白,360浏览器等显示Error #2032。用下面两种方法联合后问题解决。

从网上找的几个解决办法,留做备用

第一种情况:

状况:在安装flshbuilder的机器上调试或发布用多种浏览器运行都没问题,但发布到没装flshbuilder的机器上后别的机器除了装过flshbuilder的机器上运行正常外,其余都页面空白

 

原因:flex发布的有问题
方法:打开项目如demo,选择项目->属性-》flex构建路径,框架链接,选择“合并到代码中”,再把下面“在调试时使用本地调试运行时共享库”的沟去掉
然后发布,
就可以了
第二种情况:
状况:ie能正常显示页面,其他浏览器显示空白或 Error #2032
原因:IIS没有swz文件的MIME类型

方法: 在IIS中,添加一个MIME 类型 文件扩展名 .swz MIME 类型: application/x-shockwave-flash 或者不要选择rsl,方法如下:IIS -> 网站 -> 属性 -> HTTP头 -> MIME类型 -> 新建 扩展名:.swz/ MIME类型:application/x-shockwave-flash -> 确定

 

参考文章:http://ilovekagamisama.iteye.com/blog/1198937

内容:在flex程序初始化默认加载滚动条还没出来时就报了Error 2032 IO流错误,但只限于三维演示厅里的用户机上运行时才出现,别的机器都正常,后来将flash builder中的编译参数改为merged into swf,就是将flex框架嵌入到swf里面,而不是使用shared library共享库,问题解决。

过了几个月又碰到这个问题,只是在笔记本上会报Error2032,在其他电脑上都没问题,用Fiddler分析http请求发现,在使用RSL的flex程序初始化时会去下载xxx.swz文件,而IIS服务器返回的是404找不到此文件,而服务器上分明有这个文件,怀疑是IIS没有swz文件的MIME类型,在IIS上增加swz的MIME类型为application/x-swz后,问题解决!

为什么只在某些电脑上发生这个错误?因为RSL的机制问题,当flash player第一次访问使用RSL的flex程序时,会下载所需的swz文件,然后保存在flash player自己的缓存目录里(win7下为X:\Users\用户名\AppData\Roaming\Adobe\Flash Player\AssetCache\随机目录名),清除浏览器的缓存并不会影响flash player的缓存。再次访问时会先检查并使用缓存中的swz文件,所以在已有swz缓存的电脑上不会出现这个问题。

参考文章:IIS如何增加处理不同的文件扩展名(MIME类型)?     http://www.cnblogs.com/stragon/archive/2011/07/22/2113724.html

 

posted @ 2012-06-21 13:26  北冥子  阅读(18726)  评论(2编辑  收藏  举报