記錄asp.net在IE10下事件丟失排錯經過

來源:互聯網
上載者:User
最近項目中運用了地區三級聯動,用的是最普通的DropDownList回傳來實現的,如一直用著都挺好的,可最近客戶最近新換了台伺服器,我把網站遷移過去就有了問題,三級聯動失效了。 首先申明一點,這個三級聯動雖然是用伺服器控制項做的,但代碼是沒有錯的,我一點可以確認,不是網上經常看到的那些伺服器控制項屬性設定不對或方法使用不正確。 網站運行環境新伺服器:Windows Server2008 64位系統,IIS7,應用程式.net Framework 版本4.0、託管管道為整合模式、32位相容模式。原伺服器:Windows Server2008 32位系統,IIS7,應用程式.net Framework 版本4.0、託管管道為整合模式。本地開發:Windows 7 32位系統,IIS express 8,VS2012 測試環境:我自己機器上 IE10,Firefox21,Chome27,同事機器上IE6、7、8、9外加360,遨遊、QQ之類的瀏覽器。 測試結果: 只有在新伺服器和IE10組合時開會出現錯誤(就是DropDownList控制項的OnSelectedIndexChanged事件失效、現象就是下拉框更改選擇後頁面不回傳了)。附:對新伺服器中網站的抓包如下 注意:在IE10中,各種瀏覽器模式和文檔模式都一一試過,結果都是一樣。從源碼可以看出,伺服器返回給IE10的Html代碼中沒有onchange事件。 看到這裡,不知道各位會認為錯誤出現在什麼地方?我的第一反應是錯誤出在伺服器方,應該不是瀏覽器的問題,因為我們都知道,瀏覽器只是執行Html代碼,而Html代碼都是由伺服器端動態返回的,很明顯伺服器返回給IE10的Html代碼中丟失了onchange事件。再對比網站的伺服器環境我把重心放到了64位系統上,因為新、舊伺服器也就這點不同,結果掉坑裡去了,把網站重新設定為64位環境編譯了一遍,編譯過程還挺曲折的,引用組件System.Data.SQLite.dll沒法在64位下運行,費了老大勁,花了大把時間給搞定,結果錯誤依舊。 到這裡我又不得不懷疑是瀏覽器問題了,但是同事都沒有用IE10的,到目前為止也就我機器上測試到這個錯誤。想起老闆新買的筆記本是Win8的所以就把連結發給他,讓他看看IE11下是不是有問題。結果老闆一看我發的訊息裁圖,北京市都跑四川了,以為資料庫出錯了,直接叫經理來解決問題。經理過來一不看代碼,二不看伺服器,直接認定我瀏覽器設定有問題,一番設定後,居然“好了”,其實就是把當前網站加入到IE的相容性列表裡(具體做法就是在IE功能表列工具中將當前網站添加相容性檢視)。  我一直以為F12中瀏覽器模式設定為“IE10相容性檢視”和IE功能表列工具中的添加相容性檢視是一樣的,沒想到還有有些區別。 讀了後面這段,就會明白其實這個差別只是時間差,在工具列中添加的相容性檢視在請求時就是以相容性檢視請求的。而F12中的相容性檢視接收到的Html代碼是以IE正常模式講求的,只以相容性檢視解析而已。 我們開發時遇到問題一般有兩種解決方式,一種像我們經理這樣,還有一種就是從根本上解決。我一般不贊成這種表面解決問題的方式,所以我就繼續找解決方案,既然問題出現在IE中,我試著用IE10之類的關鍵字搜尋,最後用“asp.net IE10”Google時了一篇英文文章大概是這個意思,接著搜尋才找到兩篇中文的。原文連結我也找不到了,大概意思就是,asp.net4.0出生得比IE10早,所以asp.net4.0以前版本不認識IE10 的 User-Agent 標題,導致的後果就是ASP.NET 特定功能失效,例如:頁面報錯__doPostBack找不到,不支援 Cookies 功能等等。這屬於.net的Bug,微軟也發布了補丁。我沒找到文章中的補丁(不知道是後續補丁覆蓋了還是不同系統補丁編號不同),但我更新新伺服器中的所有補丁後,錯誤沒有了。 來自為知筆記(Wiz)Time=2013-06-22 22:16:47

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.