我曾经能够连接到我的w3wp进程并调试我的Web应用程序,但这不再适用了。我不知道改变了什么来打破这个。我正在使用Visual Studio 2008 SP1。我在IIS中调试,而不是使用ASP.NET自己的服务器(即我不运行我的项目,我只是附加到正在运行的进程(w3wp)。
我的断点只是“断点当前不会被击中。源代码与原始版本不同。”
我尝试过:
但这些都没有帮助。我附加到w3wp,但我的断点永远不会被击中。
有什么想法吗?
答案 0 :(得分:10)
我最近遇到了这个问题,最后我确定首先确保Visual Studio在系统上没有运行。
然后进入此文件夹并删除其所有内容:
C:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
答案 1 :(得分:8)
检查您的web.config
<compilation debug="true">...
答案 2 :(得分:3)
当你“附加到进程”时,输出窗口应该显示(当显示“Debug”的输出时)它加载的所有库,以及它从哪里加载 - 对于你的/ bin文件夹中的dll,这些通常是复制到\Temporary ASP.NET Files\root\
文件夹 - 您的阅读地点在哪里?你有没有把它们从那里清除出来?
我能想到的唯一其他事情:
在项目属性的“构建”选项卡上,您处于“活动(调试)”配置,您还没有选中“优化代码”?
如果单击该选项卡上的“高级...”,您对“调试信息”有什么价值?是“满”还是“无”?
回复评论
如果您的代码在“发布”模式下编译,您会发现难以成功调试,并且当您在更改后未重建符号(.pdb文件)时,您经常会收到“源代码不同”消息 - 但是你说你已经完成了干净/重建,所以应覆盖它。
是的,您的输出窗口将显示您正在引用的所有框架dll以及您的代码 - 但您应该看到其中列出的每个项目输出名称的一个文件 - 这些是要查看的内容。
您没有一些帖子构建事件将文件移动到您网站的正确目录中吗?您是否会默默地失败?
答案 3 :(得分:2)
我也有这个问题,通过在“附加到进程”对话框中将“附加到”代码类型更改为自动来解决它。 (之前我将此设置为“Silverlight Code”,因为调试了一个不同的进程......很容易忘记将其更改回来。)
答案 4 :(得分:2)
我知道这个问题已经开放了一段时间,但我认为这与我的经历相同:
我无法调试我的.aspx服务器端代码。我有一个工作的WepApp AnyCPU项目,我想链接到一些x86 dll,所以我创建了一个x86调试目标。类似的东西,重建,停止了开发Web服务器,重新启动,清除临时文件,一切都无济于事。
通过将目标文件夹更改为bin \(bin \ x86 \ Debug)来解决此问题。
答案 5 :(得分:1)
在“附加到进程”对话框中,单击“显示所有用户的进程”复选框(靠近底部),如果看到两个w3wp.exe进程,请尝试另一个进程。
应该有一个像T-SQL之类的注释/描述值,托管其他东西。这是你想要的。
答案 6 :(得分:1)
您是否正在运行任何可能影响此问题的插件?或者任何将后期构建操作应用于您开始调试的DLL的源代码的工具已经在构建后进行了修改,并且它实际上是正确的,因为它不是相同的源代码,所以调试不起作用?
还试过重置VS?
devenv.exe /resetsettings
编辑:如果这些信息都没有帮助您,那么可能值得卸载并重新安装VS和SP1。如果你经历了这个问题,之后的问题是相同的,至少可以确保问题出在web.config或项目设置中。
答案 7 :(得分:1)
您是否使用此属性检查了assembly.cs文件
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.Default)]
在反映优化代码后,您可能会得到这个。所以你必须删除它才能再次调试。
答案 8 :(得分:1)
我遇到了同样的问题。 w3wp进程占用了大量内存,并且不希望在Web应用程序发布时重置。
按Ctrl + Alt + Delete&gt;转到&#34;流程&#34;标签&gt;找到w3wp进程和 杀死它。再次运行应用程序(如果这是一个mvc应用程序,只需转到 相关网址自动重新创建w3wp进程)。
警告将在此后消失。
答案 9 :(得分:1)
我在Visual Studio 2013 Update 4中尝试了以下所有选项。
但是他们都没有工作,我在这里列出了对我有用的两件事。
请注意,此解决方案可以是特定于Visual Studio的版本,并且这两个修复程序在我的Visual Studio 2013 Update 4中适用于我。
答案 10 :(得分:0)
我有一段时间遇到这个问题,并在MS论坛上找到了我的解决方案(链接如下)。 调试诊断工具是我的罪魁祸首,但我没有必要卸载它。我为w3wp进程设置了崩溃规则,我只是删除了该规则并重新启动了所有内容。
答案 11 :(得分:0)
在OpenVMS上,我们习惯于:
编译/调试然后链接/调试
就是这样! Simples !!
但严重的是,请确保您拥有Debugger.Break行的文件已经&#39;始终复制&#39;在重建之前在其属性中设置
答案 12 :(得分:0)
我使用Visual Studio扩展VSCommands来附加调试器(方便)。但是,IIS Express正在运行,我猜它可能会干扰。果然,当我closed IIS Express时,我突然又能够再次调试。
欢乐随之而来。
答案 13 :(得分:0)