【发布时间】: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