【问题标题】:C# ASPX Errors - "'Sys' Is Not Defined" - Caused by "GET https://domain/ScriptResource.axd? 404 (Not Found)"C# ASPX 错误 - “'Sys' 未定义” - 由“GET https://domain/ScriptResource.axd?404(未找到)”引起
【发布时间】:2012-01-06 00:24:43
【问题描述】:

我有一个 asp:ScriptManager 加载一个处理一些 WebMethods 的 javascript 文件,因此我可以动态更新我网站中的数据。该站点在本地为我工作,但是当我将它放在不同的服务器上时,它会加载标题中的错误并且 JS 不起作用。这是我的 javascript 中返回错误的最后一行:

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

这似乎是一个相当广泛的错误,似乎有一百万个解决方案,到目前为止似乎没有一个对我有用。

我感觉它没有正确或根本没有加载 AJAX 文件。

我读到的一个技巧是在 bin 文件夹中本地包含 2 个 AJAX .dll 文件(System.Web.Extensions.dll 和 System.Web.Extensions.Design.dll),但我不知道如何将这些包含在 web.config 或 Default.aspx 文件中,而不是尝试访问和失败的任何内容。

是否有人对此进行了修复,但不包括编辑 IIS 站点的属性,因为我无权这样做?

下面是我页面底部的脚本管理器参考:

<asp:ScriptManager runat="server" 
  id="ScriptManager1"
  EnablePageMethods="true">
    <scripts>
      <asp:ScriptReference Path="js/scripts.js"></asp:ScriptReference>
    </scripts>
</asp:ScriptManager>

提前谢谢你, 马特。

编辑:添加 ScriptManager 参考

【问题讨论】:

    标签: c# asp.net sql ajax webmethod


    【解决方案1】:

    尝试将脚本管理器放在页面顶部。

    【讨论】:

    • 不,我从来没有。这是一个真诚的建议。我遇到了 ScriptManager 及其在页面中的位置的问题
    • 嘿,抱歉,伙计,与第一篇文章非常相似。感谢您的提示:)
    【解决方案2】:

    我找到了解决这个问题的方法,将整个站点放在父目录中,而不是在父目录中的子文件夹中修复它。最初我将子文件夹用于测试目的。

    【讨论】:

    • 如果您使用的是 .NET 4.0 之前的版本,则 web.config 包含 ScriptResource.axd 的处理程序映射。如果该 web.config 位于子文件夹中,那么它将无法将请求应用到顶级 ~/ScriptResource.axd 并且它会 404。您可以通过添加来保留子文件夹测试设置子文件夹的 web.config 的 ASP.NET AJAX 位到站点根目录的 web.config 中。
    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2017-01-17
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多