已阅读:7,469 次
关于AS3.0中Error #2032: 流错误的解决方案
ian | Flex/AS | 2011/05/05


今天写的一段as代码,从web服务器上加载一个3d模型文件,代码如下:

1
2
3
4
5
6
7
8
9
_loaderAse = new URLLoader();
 
_loaderAse.dataFormat = URLLoaderDataFormat.TEXT;
 
_loaderAse.addEventListener( Event.COMPLETE, parseAse );
 
var request:URLRequest = new URLRequest(filename);
 
_loaderAse.load(request);

这段代码很简单,但是运行的时候总是报错,错误码如下:

1
Error #2044: 未处理的 ioError: Error #2032: 流错误


代码本身是没有什么问题的,网上有人解释是filename指定的文件url路径和flash不在同一个目录下,也有人说是WebService没有连接上,但是这里都不是这些错误,因为同一个工程下其他的地方调用了相同的代码,只不过加载的文件不一样。报错的代码我加载的文件是一个ase文件,正常工作的代码加载的文件是xml文件。

然后我想到直接用浏览器查看这两个不同的文件,xml文件不用说,直接显示了文本内容,而至于ase文件就比较有意思了,浏览器直接提示,该文件的扩展名不是 Web 服务器上已定义的 MIME 类型。

什么是MIME类型?在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。也就是说,这里我们请求ase文档时,因为浏览器里没有响应的MIME类型,所以它不知道该以何种协议来处理这个文档,要想浏览器正常工作,我们需要在web服务器上为该拓展名的文件定义一个MIME类型,方法很简单:
进入IIS管理目录,选择MIME类型,然后通过添加菜单,添加一个新的MIME映射,文件拓展名填ase(或任何其他你需要的),MIME类型填application/octet-stream(可选)。

保存设置后,重新启动IIS服务器,上面的那段as代码就可以正常工作了。

原创文章,转载请注明:转载自ian的个人博客[http://www.icodelogic.com]
本文链接地址: http://www.icodelogic.com/?p=115

tags:

没有评论

发表评论

你需要先 登录 才能回复