【问题标题】:Unable to debug some aspx pages in ASP application无法调试 ASP 应用程序中的某些 aspx 页面
【发布时间】:2017-06-20 03:39:33
【问题描述】:

我有一个在 IIS 上运行的经典 ASP 网站。我用 VS 2015(在文件菜单中打开网站)打开它并保存了解决方案(打开它时它说这是一个预编译的网站——不管这意味着什么)。然后我附加到进程来调试它。

现在,我放置的断点在某些 .aspx 页面上命中,而不是在其他页面上。知道为什么会这样吗?我检查了 webconfig,它的调试选项设置为 true。可能缺少一些 PDB 文件。人们建议重建网站,但是当我单击构建或重建解决方案时,该过程立即成功完成,所以我怀疑是否有任何重新编译。

我可以修改这些页面的代码,并且 IIS 会在下一次请求时重新编译它们,但不确定为什么断点不会在那里命中。显然,一旦我在我的代码中添加了 Debugger.Launch() 之类的东西,它们就会出现,但这不是我想要的。

我不是专家,所以如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 你能否分享一个关于警告/错误“它说这是一个预编译的网站”的屏幕截图,如果它在你重建后运行良好,一个可能的原因是你改变了某些文件的位置或者代码,比如你说你保存了解决方案文件,是否和你手动保存的解决方案文件(.sln)有关?默认网站项目有两个不同的文件夹保存项目文件。因此,您可以尝试创建一个新的空白网站,然后将所有项目文件保存到这个新的空白项目中。或者如果正常调试,你会发现差异。
  • 对于“断点未命中”的问题,请查看输出或错误列表窗口中的详细输出信息。请同时在 TOOLS->Options->Debugging->Symbols 下启用 Microsoft 符号服务器,同时在 TOOLS->Options->Debugging->General 下禁用“Require source files to exact match the original version”选项。
  • @JackZhai-MSFT 如果我重建解决方案,没有任何变化,断点仍然没有被命中。一旦我点击重建,它会立即在控制台中显示重建完成,所以我怀疑任何东西都被重建了。
  • @JackZhai-MSFT 我已经启用和禁用了你提到的选项,仍然没有。在输出窗口中它说(一旦我开始调试):'w3wp.exe'(脚本):加载'脚本代码(Microsoft Active Server Pages)'。
  • 点击构建->配置管理,请确保您为所有项目启用“构建”选项,然后清理并重建整个解决方案,点击全部保存,再次重新调试。

标签: asp.net visual-studio debugging


【解决方案1】:

预编译网站意味着它可以提高某些 ASP.NET 网站的性能。它可用于优化静态站点。我们探索其他类型网站的策略。这加快了对您网站中页面的首次访问。如果您希望站点部署后更快的选项,请考虑“站点预编译”。假设您的网站容量大、受欢迎且重要。当客户访问时,网站应立即做出响应,这一点很重要。

希望这有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 2014-03-11
    • 1970-01-01
    • 2010-10-15
    • 2012-07-21
    • 2016-02-25
    • 2018-05-26
    • 2015-04-05
    相关资源
    最近更新 更多