今天在做項目時,需要重新部署一台測試環境,折騰差不多了之後通路網站,就開始提示了"錯誤: ASP.NET Ajax 用戶端架構未能加載"的錯誤,而且是連續爆出一下錯誤,這是在其它部署環境上沒遇到過的問題,頓時郁悶不已:

于是乎就馬上google了一把,搜集到了一下解決方法:
- 1、IIS 的"擴充名映射"問題,有人指出如果IIS得腳本映射如果沒有.axd則會出現此問題。經驗證,不屬于此種情況。
- 2、utf-8編碼問題。在webconfig中添加<system.web>節點下添加<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>,指定頁面的編碼格式為utf-8 。無效,看來也不是編碼問題。
- 調試模式問題。 3、修改webconfig裡的<compilation debug="true">,把它改成false。也無效。
- 4、對項目添加System.Web.Extensions 和System.Web.Extensions.Design的引用。也沒用
5、重新安裝microsft.net framwork 3.5 sp1,修複環境。同樣也無效。
以上就是網上所有的解決方案了,但依然沒有解決我的問題,讓我頭疼不已,搞不定問題可是要加班的啊。 靜下心來再仔細分析問題,發現頁面上有自動生成的scriptResource.axd檔案未找到(404錯誤),繼續Google之,終于發現了最終解決問題的方案: 在webconfig中添加如下配置 <system.webServer>
<handlers>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
問題解決後,仔細想了想,猜想可能是由于IIS中對axd檔案的處理映射為framwork 2.0版本的,而以為往出現此錯誤的伺服器上的處理映射皆為framwork 4.0且分為32位與64位。由于版本的不同是以在2.0版本需要對axd手動添加映射處理。
參考文檔 1、http://www.cnblogs.com/Blackie/archive/2009/05/14/1457000.html 2、http://www.haogongju.net/art/903883 3、http://geekswithblogs.net/lorint/archive/2007/03/28/110161.aspx 4、http://social.msdn.microsoft.com/forums/zh-TW/236/thread/88c117c5-920f-4fe3-b1e6-d2e88e5670ec