scriptreference命名响应不再有效

时间:2014-04-05 18:01:00

标签: c# asp.net scriptmanager

使用:Visual Studio Express 2013 for Web编写.NET 4.5.1站点。

项目最初是在默认的“创建新网站”模板上构建的,因此有问题的部分由IDE添加到我的项目中,但尚未进行编辑。

这是一个长达数周的项目,今天我开始收到与创建时添加的“罐装”项目有关的错误。到目前为止,它一直没有错误地工作。

错误消息是:

Server Error in '/' Application.  

'respond' is not a valid script name.  The name must end in '.js'.

我已将此调试与我的site.master文件中的此行直接相关:

<asp:ScriptReference Name="respond" />

在此处查看评论 此参考包含在我的主文件部分中:                            

这是IDE在创建时添加的更大的脚本引用组的一部分。

在排除故障时我尝试添加.js;将路径属性添加到实际文件中;并完全评论了这条线。

添加扩展名和/或路径会导致不同的错误:

Server Error in '/' Application.

The assembly 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' does not contain a Web resource that
has the name 'respond.js'. Make sure that the resource name is spelled correctly.

唯一成功的故障排除一直在评论它但是这打破了另一个关键功能:访问我的链接需要.ASPX扩展现在我以前可以访问我的链接而无需在我的文件上指定扩展名。 ..这是通过ide创建项目的默认方式,所以有了这个修复,我的链接都没有编辑,没有编辑每个链接和扩展。 NOT IDEAL

我尝试使用程序包管理器进行更新,但没有任何成功。我还验证了我的脚本文件夹中存在的respond.js文件,以及bootstrap等其他文件。

我在这里搜索并搜索了很长一段时间,但是有太多无关的结果,其中包含剧本管理员的摘录,结果是无穷无尽的。

我不确定需要进行更正,或者是否需要其他文件。重建我的网站没有任何效果,我已经删除了每个帖子的“临时”文件,我发现它可能适用于不同但相似的问题。

此错误的纠正措施是什么?

7 个答案:

答案 0 :(得分:2)

在Site.Master文件中找到以下行:

<asp:ScriptReference Name="respond"/>

并修改为:

<asp:ScriptReference Name="respond" Assembly="System.Web.Extensions" />

答案 1 :(得分:2)

我自己遇到了同样的问题并通过以下方式解决了这个问题。

将以下代码添加到BundleConfig类的RegisterBundles方法中:

ScriptManager.ScriptResourceMapping.AddDefinition(
                "respond",
                new ScriptResourceDefinition
                {
                    Path = "~/Scripts/respond.min.js",
                    DebugPath = "~/Scripts/respond.js",
                });

答案 2 :(得分:2)

我遇到了同样的问题,以上都没有... 验证你的global.asax.cs,在我的情况下缺少Routeconfig和BundleConfig行,添加它们后,它再次工作。

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

答案 3 :(得分:1)

解决方案:

  • 在生产服务器上编译项目 ,而不是在开发计算机上进行预编译。

  • 如果使用VS一键发布工具,请在“设置”下,确保未选中“在发布期间预编译”。

答案 4 :(得分:0)

看来你的bundleConfig没有启动。

首先尝试重建和清理项目。之后,尝试查看文件Global.asax.cs并查看是否有错误。

或尝试获取默认的Global.asax.cs文件并将其复制到其中。

答案 5 :(得分:0)

当我将从Visual Studio(在我的案例中为2015)生成的模板asp.net Web表单应用程序部署到Azure应用程序服务时,我遇到了这个问题。

对我来说,上面给出的解决方案都没有奏效。我完全按照这个问题的描述得到了错误。

然后我偶然发现了下面的文章,其中显示了添加jquery包的示例。 Adding Bundling and Minification to Web Forms

在该示例之后,我删除了AddDefinition的模板代码,用于&#34;响应&#34;在RegisterBundles方法中。然后我添加了以下内容并重新构建并上传了应用程序DLL。

            bundles.Add(new ScriptBundle("~/bundles/respond").Include(
                    "~/Scripts/respond.min.js"));

然后我将以下内容添加到了Site.master中的Asp:PlaceHolder。

        <%: Scripts.Render("~/bundles/respond") %>

最后,我在site.master中删除了ScriptManager中包含的响应。

答案 6 :(得分:0)

我尝试了上述方法但没有取得多大成功。 然后我尝试了另一篇文章

<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
介于两者之间      并在web.config

就像一个魅力。 格雷厄姆 https://forums.asp.net/t/1857743.aspx?Bundling+not+working+when+deployed+to+web+host+works+fine+locally