簡體   English   中英

Microsoft AJAX腳本的JavaScript運行時錯誤

[英]JavaScript runtime error for Microsoft AJAX scripts

我在VS.NET 2012中有一個ASP.NET Web表單項目,運行了幾個星期。 突然,我每次開始調試項目時都會得到以下提示:

第1行第http:// localhost:1449 / bundles / MsAjaxJs?v = _Onj24X0Yu7cK2nh78YBmVwMlQTGcakS5HZSOI_a6SM1中的未處理異常

0x800a139e-JavaScript運行時錯誤:Sys.InvalidOperationException:腳本“ Timer.js”已被多次引用。 如果顯式引用Microsoft AJAX腳本,請將ScriptManager的MicrosoftAjaxMode屬性設置為Explicit。

(注意:錯誤消息中的空格添加到單詞“ localhost”,因為這些URL的格式不適合發布;無論如何,鏈接都不相關)

這很奇怪,因為它只是突然發生。 我對此進行了一些搜索,並提出了可以使其工作的所有方法。

在自動生成的BundleConfig.cs ,此文件僅列出1x:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
          "~/Scripts/WebForms/WebForms.js",
          "~/Scripts/WebForms/WebUIValidation.js",
          "~/Scripts/WebForms/MenuStandards.js",
          "~/Scripts/WebForms/Focus.js",
          "~/Scripts/WebForms/GridView.js",
          "~/Scripts/WebForms/DetailsView.js",
          "~/Scripts/WebForms/TreeView.js",
          "~/Scripts/WebForms/WebParts.js"));

    bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
        "~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
        "~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js",
        "~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
        "~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"));

    // Use the Development version of Modernizr to develop with and learn from. Then, when you’re
    // ready for production, use the build tool at http://modernizr.com to pick only the tests you need
    bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
        "~/Scripts/modernizr-*"));
}

在web.config中,沒有重復或列出計時器。 我在該項目上進行了搜索,這是它被列出的唯一地方。

我還確保所有NuGet軟件包都是最新的。 任何人都了解或知道導致此錯誤的原因是什么,我該如何解決?

解決了這個問題。 我得相信我下載的是單獨注冊這些文件的NuGet包更新之一,並在同一時間必須有新的邏輯。 我之所以這樣說,是因為這個問題無處不在。

解決方案只是注釋掉或刪除BundleConfig.cs文件中已注冊超過1x的有害腳本。 這是腳本注冊的修改部分:

bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
         "~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
         "~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js"));

罪魁禍首是以下(2)個腳本:

"~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"

刪除它們后,錯誤消失了,這些腳本中的功能仍然有效(我使用Ajax計時器),並且錯誤消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM