AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 35365
Accepted
ChrisHDog
ChrisHDog
Asked: 2009-07-03 15:49:51 +0800 CST2009-07-03 15:49:51 +0800 CST 2009-07-03 15:49:51 +0800 CST

仅在生产服务器上出现 Javascript 错误?

  • 772

我正在发布从开发到生产的几个 asp.net 网站。一切似乎在开发中运行良好,但在发布到生产环境时,我们在访问该站点时遇到了一些 javascript 错误。这似乎是服务器上的东西,尽管相同的代码已部署到测试服务器并且可以在相同的客户端上正常工作。服务器是使用 IIS7 的 Windows 2008

抛出的错误:

一些语法错误 (scriptResource) - 其中 10 个

Error: syntax error
Source File: http://website.com/ScriptResource.axd?d=abc032_vah79hasdf87&t=123456789
Line: 3
Source Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

错误与上述相同,但使用 WebResource.axd 而不是 ScriptResource.axd - 其中 2 个

然后两个似乎是真正的原因?

Sys is not defined

和

WebForm_AutoFocus is not defined

----------------- 附录 --------------------------------

根据建议,我查看了 ScriptResource.axd 和 WebResource.axd

正在部署的 Web 应用程序具有表单身份验证,并且如果引用了登录页面以外的任何页面,则会重定向到登录页面。ScriptResource.axd 和 WebResource.axd 似乎正在发生这种情况(即登录页面尝试引用这些项目,发生重定向,因此他们无法取回 javascript,引发错误)

为此,我在 web.config 中添加了“位置”标签,以尝试允许所有用户访问这些项目,因此登录页面可以正常工作(请参阅下面的相关 web.config 部分)

<system.web>
   <authentication mode="Forms">
      <forms loginUrl="login.aspx" defaultUrl="home.aspx"/>
   </authentication>
   <authorization>
      <deny users="?"/>
      <allow users="*"/>
   </authorization>
   ...
</system.web>
<location path="ScriptResource.axd">
  <system.web>
    <authorization>
      <allow users="*"/>
      <!-- allow all users -->
    </authorization>
  </system.web>
</location>
<location path="WebResource.axd">
  <system.web>
    <authorization>
      <allow users="*"/>
      <!-- allow all users -->
    </authorization>
  </system.web>
</location>

不幸的是,这也没有解决问题。是否有一些设置/配置选项可以阻止位置标签工作?我们为应用程序中的页面添加了相同的标签(用于测试),它适用于开发人员的机器,但不适用于服务器。看起来如果我们可以让这些位置标签在服务器上工作一切都会工作,有什么建议吗?

javascript asp.net iis-7 web.config
  • 6 6 个回答
  • 16776 Views

6 个回答

  • Voted
  1. Peter Hahndorf
    2009-07-03T19:27:03+08:002009-07-03T19:27:03+08:00

    在新的浏览器窗口中打开源文件 (...ScriptResource.axd...) 的完整 URL。您应该会看到一些 JavaScript 内容。如果没有,则 asp.net ajax 组件未正确安装。

    Sys is not defined
    

    表示没有Ajax客户端组件,找不到sys类。

    如果您使用 .net 3.5,它是框架的一部分,问题应该在 web.config 中,使用 .net 2.0 时,您需要ASP.NET AJAX 1.0,如果您在服务器上安装此 msi,文件将进入GAC,.net 组件的中心位置。您可以在不安装 msi 的情况下将单个文件 System.Web.Extensions.dll 放入您的 bin 目录,但您仍然需要在 web.config 文件中进行正确设置。ajax.asp.net网站有很多关于这一切的信息。

    • 2
  2. palehorse
    2009-07-03T16:01:39+08:002009-07-03T16:01:39+08:00

    听起来您可能缺少服务器上的组件,或者 Web 本身没有正确配置为使用 ASP.NET Ajax 组件。也许开发人员使用了另一个库,例如 Ajax.NET Toolkit,并且需要将它安装在服务器上?

    • 1
  3. Best Answer
    ChrisHDog
    2009-07-06T17:58:36+08:002009-07-06T17:58:36+08:00

    好的,这个问题有两个部分和两个解决方案:

    首先:由于 /ScriptResource.axd 和 /WebResource.axd 位于网站的一个部分中,然后重新定向到登录页面(表单身份验证),导致系统未定义,因此未获得所需的 javascript从那些文件中。

    第二:一旦添加了标签以使这些项目能够被看到,就会发现匿名访问被禁用,并且似乎必须启用标签才能工作匿名访问。

    • 1
  4. splattne
    2009-07-04T00:44:18+08:002009-07-04T00:44:18+08:00

    要对此进行调试,我会尝试使用FiddlerTool并查看您的页面尝试加载的所有资源(ScriptResource.axd 和 WebResource.axd)的确切响应。GAC 中的程序集可能存在一些版本冲突。

    这个问题还有其他一些帖子/讨论,也许有适合您的解决方案:

    • StackOverflow:系统未定义
    • 揭开“系统未定义”的神秘面纱
    • 0
  5. Dominic Zukiewicz
    2011-09-17T01:19:18+08:002011-09-17T01:19:18+08:00

    我有这个问题。WebResource.axd 找不到 WebForms.js(嵌入在 System.Web.dll 中)。

    我修复了服务器上的 ASP.NET xx 框架安装,之后它就可以工作了。

    • 0
  6. Robert Burkhall
    2013-01-09T12:24:24+08:002013-01-09T12:24:24+08:00

    我遇到了同样的问题,并将丢失的 WebForm_Autofocus 代码跟踪到 web.config 中的一个选项,. 当这个选项被删除/注释掉时,一切正常,并且为所有剩余的脚本函数生成了 js 脚本。

    这似乎是一个可能需要 Microsoft 解决的 web.config 问题。我正在使用 VS 2010,版本 10.0.40210.1 SPIRel,代码面向 .Net 4.0。当此选项处于活动状态时,我还没有弄清楚杀死 JS 生成的底层过程。

    • 0

相关问题

  • HTTP gzip压缩不适用于tomcat 6中的css或javascript

  • 客户端 Javascript --> 服务器端 Java --> 为用户提供 .doc

  • 是否有将 Virtual Server 2005 管理网站与 Internet Explorer 8 一起使用的解决方法?

  • 安装的 SP3 与集成的 SP3,默认安全设置有何不同?

  • 设置安全网站的最佳实践 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve