Microsoft AJAX 脚本的 JavaScript 运行时错误
本文关键字:JavaScript 运行时错误 脚本 AJAX Microsoft | 更新日期: 2023-09-27 18:33:32
我在 2012 年 VS.NET 有一个 ASP.NET Web 表单项目,该项目已经运行了数周。每次我开始调试项目时,我都会突然得到以下信息:
第 1 行第 12302 列处未处理的异常 http://localhost :1449/bundles/MsAjaxJs?v=_Onj24X0Yu7cK2nh78YBmVwMlQTGcakS5HZSOI_a6SM1
0x800a139e - JavaScript 运行时错误:Sys.InvalidOperationException: 脚本"计时器.js"已被多次引用。如果 显式引用Microsoft AJAX 脚本,设置 ScriptManager 的 MicrosoftAjaxMode 属性以显式执行。
(注意:在错误消息中为单词"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
文件中注册超过 1 倍的违规脚本。以下是脚本注册的修改部分:
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 计时器(,错误消失了。