2010-09-12 105 views
28

我得到了一個ASP.Net 4.0 Ajax的複雜問題....我在我的機器上啓動了一個Visual Studio 2010網站,並添加了一些他們用於更新的面板做工精細,但我突然得到了一系列的錯誤,當我跑我的網站Ajax客戶端框架無法加載Asp.Net 4.0

Microsoft JScript runtime error: ASP.NET Ajax client-side framework failed to load.

Microsoft JScript runtime error: 'Sys' is undefined

奇怪的事情是,我做了一個網站在同一臺機器上使用VS 2010和更新面板那裏工作perfectly.i了其web.config到我的新網站,並改變了剛剛的連接..和我得到了同樣的錯誤

我試圖尋找一個解決方案,但我沒有找到任何真正的解決方案。可以任何電子幫助?

+0

這樣一個有用的帖子,我不止一次得到這個問題,並在這裏使用多個答案來解決它。謝謝SO社區! – johntrepreneur 2013-10-25 22:17:43

+3

不確定它爲什麼關閉,因爲它對我和所有積極的社區反饋都很有用。在這種情況下,我認爲這不是所有社區成員贊成的理由。 – johntrepreneur 2013-10-25 22:20:26

+0

我已將DefaultAppPool的管理管道模式從「經典」更改爲「集成」,並對我有用。我不能說你有任何常見的配置變化,但它也可能適用於你。 – smlnl 2014-04-22 10:01:37

回答

32

在asp.net論壇上,這個是zhughes from thread的回答。

原因:當使用URL路由模塊時,scriptmanager生成的javascript路徑發生變化。

解決方案:告訴路由API不航線與「AXD」擴展(通過使用ScriptManager生成的文件)文件

此規則添加到方法,你在Global.asax中

註冊路由規則
routes.Ignore("{resource}.axd/{*pathInfo}"); 

除了你應該在web.config中本節

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 
+1

routes.Ignore(「{resource} .axd/{* pathInfo}」);必須在routes.MapPageRoute(「RootPages」,「{file}」,「〜/ {file} .aspx」)之前出現, – Paul 2011-07-31 17:25:56

+0

這擺脫了我的JS錯誤,但AJAX仍然沒有工作。它看起來像是在響應中達到我想要的效果,但沒有輸出。有什麼想法嗎? – balexander 2012-02-09 01:51:39

+0

我不會運行runAllManagedModulesForAllRequests =「true」 - 可能會對性能產生很大影響。 http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html – strongriley 2012-06-05 14:50:26

2

這是一個常見錯誤,當您在頁面甚至加載它們之前嘗試調用框架JavaScript函數時,會發生這種錯誤。

因此,當dom準備就緒時(例如頁面加載),ether會將代碼放在scriptmanager標記之後,或者檢查是否將其放在scriptmanager的JavaScript負載之後。

+0

我該怎麼做?是的腳本管理器是在我的母版頁的頂部,但即使當我創建一個新的空白頁面,只有一個標籤和更新面板中的按鈕,我收到了相同的錯誤 – Khaled 2010-09-12 22:22:50

+0

@khaled你能看到源你的頁面代碼(右鍵點擊瀏覽器並選擇源代碼)。然後檢查你得到錯誤的那一行。也許你的頁面中有元素,你在web.config上設置了它們? – Aristos 2010-09-13 05:15:25

+0

@Aristos感謝您的回覆,我試圖用螢火蟲來修改頁面,並在所有腳本引用後更改了引發錯誤的那一行,當更新面板中的控件回傳時,並不會讓所有頁面回發。 。它發生沒有行動...我開始一個新的空白網站,並導入我的網頁,app_code和BIN文件夾..它工作得很好,但後來再次沒有改變任何我得到了同樣的錯誤。 :( – Khaled 2010-09-13 22:40:52

2

我有這個問題,並從谷歌全能尋求一個答案,嘗試v包括上面的但是沒有運氣的重要建議。提出並轉移到其他工作,幾天後回來,問題消失了。

我恢復了工作,做了一些代碼更改併發布了我的網站,問題又出現了。回到谷歌,遇到了使用3.5框架時遇到問題的人。在這種情況下,他/他可以通過轉到「添加/刪除程序」控制面板並選擇修復選項來解決問題。

我也這樣做了,修復'MS .NET Framework 4 Client Profile'和'MS .NET Framework 4 Extended'。這解決了我的問題。

希望能爲別人解決它。

3

我遇到了同樣的問題。我安裝了VS 2010 SP1,問題消失了。

3

我遇到了同樣的問題,我通過運行命令aspnet_regiis -i來解決它的框架4.0(我的應用程序運行)的文件夾。這是IIS的處理程序映射中的一個問題:該操作爲我解決了這個問題。另請參閱this post

希望這可能會有所幫助。

2

在我的情況下,它是IISExpress,切換回cassini dev服務器修復我的頭痛。

+0

你是怎麼做到的?我在VS2012中,一旦IIS Express搶到我的網站,我無法再讓VS2012使用Cassini進入這個網站! – jimtut 2013-08-09 17:43:35

1

我有這個問題,以及處理母版頁,在我的情況下,這是一個「基地」元設置,搞砸了我。我記得閱讀另一篇文章/博客的地方,他們提到了跨越不同領域的ajax驗證問題導致此類錯誤。

所以在我的情況下,我有一個<base...>參考設置網站的默認網址,但我的開發顯然是一個不同的網址......因此衝突和「ASP.NET Ajax客戶端框架無法加載」。錯誤。

刪除了基地和瞧...錯誤消失了。

HTH

戴夫

8

我發現,這是一個可能是緩存/壓縮的問題,通過將在以下到Web.Config中,解決了問題。

<system.web.extensions> 
    <scripting> 
     <scriptResourceHandler enableCaching="false" enableCompression="false" /> 
    </scripting> 
</system.web.extensions> 
+0

雖然這確實擺脫了我的錯誤(+1),但它似乎並不理想禁用緩存。 – johntrepreneur 2013-10-25 22:11:34

+0

雖然不理想,但現在這個答案是我的後備,但是在嘗試了kannankeril關於修復'已安裝程序' - >'MS .NET Framework 4 Client Profile'的解決方案之後,它爲我永久地解決了這個問題。 – johntrepreneur 2013-10-25 22:15:55

3

Microsoft JScript運行時錯誤:ASP.NET Ajax客戶端框架未能加載。這樣

添加引用..

<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>    
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
3

它可以在你的web.config像<httpHandlers><Handlers>簡單地缺少的一部分,我的建議是,如果你有你的web配置的舊副本嘗試一下。

9

如果使用URL重寫模塊,然後在每個重寫規則添加

<add input="{URL}" pattern="\.axd$" negate="true"/> 

條件下的標籤,就像這樣:

<rule name="HomeRewrite" stopProcessing="true"> 
    <match url="^home$"/> 
    <conditions> 
    <add input="{URL}" pattern="\.axd$" negate="true"/> 
    </conditions> 
    <action type="Rewrite" url="/home.aspx"/> 
</rule> 
1
  1. 如果.Net框架4.0客戶端配置文件不可用在你的機器上,所以修復.net框架工作4.0或重新安裝。
  2. 轉到項目屬性並選擇目標框架3.5。
1

在我的情況下,它是微軟的UrlScan工具,它拒絕Ajax請求的一些URL。禁用它解決了這個問題。