最近碰到一個很奇怪的問題!
新發(fā)布一個ASP.NET的網(wǎng)站,基于.net 4.0 framework,基本沒有用到什么特別新的技術(shù),但是由于給客戶預(yù)覽用的服務(wù)器比較老,操作系統(tǒng)用的是Windows 2003,上面默認(rèn)只支持IIS 6。將網(wǎng)站發(fā)布上去之后大部分功能都能正常運行,但是有一些操作會莫名其妙地報'__doPostBack' is undefined的腳本錯誤。在網(wǎng)上查找了一下錯誤產(chǎn)生的原因,這個是.net 4.0 framework中的一個bug,可以查看這篇文章http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedjavaScrFirefox和Chrome上一切運行正常。另外,在IE中將User agent string改為IE10或以下也運行正常。

嘗試了以下方法均無效:
1. 重新安裝.net 4.0 framework。
2. 在IIS中重新配置網(wǎng)站運行權(quán)限和.net設(shè)置項。
3. 清除本機所有已安裝的.net framework版本然后重新安裝.net 4.0 framework。
4. 排除網(wǎng)站代碼本身產(chǎn)生的問題。因為除了IE,其它的瀏覽器均運行正常,說明代碼本身沒有問題,應(yīng)該是服務(wù)器環(huán)境所產(chǎn)生的。
解決辦法:

如果上述方法均不奏效,可以考慮升級IIS 6到IIS 7或IIS 8.5,或者升級.net framework到4.5或更新版本,或者為網(wǎng)站的所有頁面加上下面的腳本:
if ($('#__EVENTTARGET').length <= 0 && $('#__EVENTARGUMENT').length <= 0) { $('#YOUR_ASPNET_FORMID').
新聞熱點
疑難解答