【问题标题】:Debug without write access to IIS logs无需对 IIS 日志的写入权限即可进行调试
【发布时间】:2015-07-01 20:32:34
【问题描述】:

我不知道ASP,我刚开始为一家大公司工作,并且有一个asp-classic 网络应用程序丢在我的腿上,但它不起作用。没有人对此一无所知,显然我不允许写入 IIS 日志文件。到目前为止,该程序似乎失败了,因为据我所知,POSTed HTTP 参数,我可以在 IE 开发人员控制台中看到,被发送到永远不会到达服务器,也无法在它的Request.Form。有谁知道该怎么做以及如何打印出Response.QueryString 我可以访问它的地方?

澄清

  1. 我可以看到日志文件,但我无法像在 Linux 上使用 PHPApache 那样添加自己的调试行。我是一条离开水的鱼。

  2. 程序失败的证明是有一个名为ASPXTOASP.ASP 的程序我认为将.Net 请求参数转换为经典参数是破坏性的。它得到一个索引越界异常,我认为这是因为它被传递了一个空查询字符串。当我尝试将查询字符串写入某处时,它从未出现过。我可以在哪里写这个查询字符串,我可以查看它?

  3. 我不确定我是否足够了解 Web 应用程序的所有组件,无法将其组织成桌面上的工作版本以进行调试。

  4. 我刚刚使用Response.WriteResponse.EndRequest.QueryString 写入屏幕。它是空的。基于这一点以及紧接在中断之前的程序称为login.aspx 并且包含设置一些与 AD 身份验证有关的 EV 的事实,我认为我的问题一定是身份验证配置问题。我们使用Active Directory 进行身份验证。谁能告诉我有关 IIS 中的任何特定设置,我要求管理员/高级开发人员指出哪些可能会解决此类问题?

【问题讨论】:

  • "我不允许写入 IIS 日志文件。" -- IIS 服务器应该写日志文件,而不是你。你能联系 IIS 服务器管理员吗?或者您可以访问 IIS 控制台? “到目前为止,程序似乎失败了”——你有没有得到任何错误? “我可以在 IE 开发人员控制台中看到它从未发送到服务器,并且无法在 Request.Form 中找到”——您可以在您的计算机上运行网站的本地副本吗?
  • 我会根据您的反馈修改我的问题。

标签: asp.net iis asp-classic active-directory


【解决方案1】:

帮助您调试的几个想法:

1) 如果您在实时站点上进行调试,您可以将所有 Request.Form 值输出到 HTML 注释中,这样您的用户就不会受到影响。

<!-- <%
dim key
for each key in Request.Form
    Response.Write key & "=" & Request.Form(key) & vbCrLf
next
%> -->

2) 如果您可以使用 Visual Studio 在您的计算机上调试 Web 应用,请参阅this answer for how to debug ASP

【讨论】:

  • 或者,只需将 STOP 命令放入 ASP 文件中,然后在 Visual Studio 中调试脚本。
  • @Zam:ASP 中没有“STOP”命令。你的意思是Response.End
  • @Martha -- 你是对的,STOP 不是命令,STOP 是 VBScript 语句。请阅读更多信息msdn.microsoft.com/en-us/library/ms525253%28v=vs.90%29.aspx
  • @Keith:谢谢。不幸的是,程序的中断部分应该遍历这些表单值。请参阅我刚刚发布的说明。对不起!
【解决方案2】:

根据我收到的反馈,对应用程序进行故障排除的最佳解决方案是尝试将查询字符串打印到浏览器,然后停止程序。为此,我写了这样的内容:

Response.Write("Query String: " & Request.QueryString)
Response.End  

最终这让我发现我的参数已经消失了。查询字符串为空。我想我现在需要阅读有关消失 HTTP 参数的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2013-03-19
    • 2018-02-20
    • 2020-12-07
    相关资源
    最近更新 更多