日前用flex、arcgis做了一個地圖顯示的頁面,本機調試沒問題,發布后放到用戶服務器上(win2003,ie6)ie6顯示頁面空白,換搜狗瀏覽器顯示Error #2032,只顯示進度條,客戶端用ie6顯示空白,360瀏覽器等顯示Error #2032。用下面兩種方法聯合后問題解決。
從網上找的幾個解決辦法,留做備用
第一種情況:
狀況:在安裝flshbuilder的機器上調試或發布用多種瀏覽器運行都沒問題,但發布到沒裝flshbuilder的機器上后別的機器除了裝過flshbuilder的機器上運行正常外,其余都頁面空白
然后發布,
就可以了
方法: 在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