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 / 问题 / 1052262
Accepted
Janus Bahs Jacquet
Janus Bahs Jacquet
Asked: 2021-02-04 06:11:37 +0800 CST2021-02-04 06:11:37 +0800 CST 2021-02-04 06:11:37 +0800 CST

在 IIS Failed Request Trace 中获取实际的已编译 ASP 文件

  • 772

当 ASP(经典、VBScript)页面上发生错误时,生成的错误消息(如果设置为显示错误响应)以及完整的FREB 日志(如果您已打开)显示已处理的行号发生错误的 ASP 文件。

这非常有用,因为您可以查看文件,找到错误并修复它。或者至少,如果您的 ASP 文件只是一个不包含任何其他文件的文件,则可以。

另一方面,如果您的文件确实有任何<!-- #include -->包含其他文件的指令,那么事情就不那么有用了。由于 ASP/IIS 包含在文件处理之前发生,因此行号不是磁盘上任何实际文件中的实际行号,而是由复制到主文件中的所有包含文件组成的文件中的行号各自的位置。当你有一个顶部有大约 30 个包含指令的文件,然后你被告知在第 592 行有一个错误,你最终完全不知道该行在哪个物理文件中,你只剩下 30文件,直到找到正确的文件。

不幸的是,据我所知,无法检索有关特定行最初属于哪个文件的信息,因此无法获得完全有用的错误消息版本。

但是服务器至少应该可以提供它实际正在处理的页面的源代码,以便您可以查看它,找到第 592 行并至少知道导致错误的行的内容和上下文是。

我不希望这可以在输出到浏览器的错误消息中提供(这将是一个明显的、巨大的安全漏洞),但它肯定应该很容易包含在包含成千上万的失败请求跟踪中关于文件执行的其他所有细节的行。可悲的是,我还没有找到真正做到这一点的方法。

有没有办法指示 IIS 提供已编译的 ASP 文件(作为纯文本)作为失败请求跟踪的一部分,以便错误消息中的行号实际上有用?

iis asp-classic iis-8
  • 1 1 个回答
  • 51 Views

1 个回答

  • Voted
  1. Best Answer
    Peter Hahndorf
    2021-02-05T10:51:11+08:002021-02-05T10:51:11+08:00

    有一种相当简单的方法可以查看 ASP 文件及其包含的组合输入。但仅限于您的开发机器上,而不是您的生产服务器上。

    首先以管理员身份在 PowerShell 中安装 Server-Side-Includes:

    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ServerSideIncludes 
    

    现在,假设您有一个/index.asp包含许多包含的页面。在相同位置复制并index.shtml在浏览器中调用该 url。

    现在查看页面的代码(Ctrl+U),你应该看到合并的源代码。

    IIS ServerSideIncludes 处理程序包括包含目录中的所有文件,但不运行经典的 ASP 解释器。

    • 0

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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