为什么我无法在Visual Studio中调试我的ASP.NET网站?

时间:2010-03-15 11:39:22

标签: asp.net debugging

我曾经能够连接到我的w3wp进程并调试我的Web应用程序,但这不再适用了。我不知道改变了什么来打破这个。我正在使用Visual Studio 2008 SP1。我在IIS中调试,而不是使用ASP.NET自己的服务器(即我不运行我的项目,我只是附加到正在运行的进程(w3wp)。

我的断点只是“断点当前不会被击中。源代码与原始版本不同。”

我尝试过:

  • 解决方案是否干净。
  • 重建解决方案。
  • 确保我的web.config文件中的编译debug = true。
  • 删除了bin文件夹
  • 重新启动Visual Studio
  • 重新启动IIS
  • 重新启动了我的电脑
  • 添加了一个简单的Response.Write以确保使用最新的DLL。它是。
  • 确保在我的项目属性中选中了Debug ASP.NET。它是。
  • 确保我的所有项目都是在我的构建配置中编译的。他们是。

但这些都没有帮助。我附加到w3wp,但我的断点永远不会被击中。

有什么想法吗?

14 个答案:

答案 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\文件夹 - 您的阅读地点在哪里?你有没有把它们从那里清除出来?

我能想到的唯一其他事情:

  1. 您已从“解决方案配置”下拉菜单中以“发布”模式而不是“调试”(而不是web.config)编译代码。
  2. / bin文件夹中缺少符号文件(.pdb)。
  3. 在项目属性的“构建”选项卡上,您处于“活动(调试)”配置,您还没有选中“优化代码”?

    如果单击该选项卡上的“高级...”,您对“调试信息”有什么价值?是“满”还是“无”?

    回复评论

    如果您的代码在“发布”模式下编译,您会发现难以成功调试,并且当您在更改后未重建符号(.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中尝试了以下所有选项。

  1. 重置IIS
  2. 清洁解决方案并重建
  3. 从临时文件夹中删除friles C:\ Windows \ Microsoft.Net \ Framework ... \ Temporary ASP.NET files
  4. 检查编译标签是否为debug
  5. 但是他们都没有工作,我在这里列出了对我有用的两件事。

    1. 禁用&#34; Just My Code&#34;选项 工具 - &gt;选项 - &gt;调试 - &gt;一般 - &gt;取消选中“启用我的代码”。
    2. 编辑web.config文件并保存(您始终可以在任何行中创建空格 在web.config中,即可)
    3. 请注意,此解决方案可以是特定于Visual Studio的版本,并且这两个修复程序在我的Visual Studio 2013 Update 4中适用于我。

答案 10 :(得分:0)

我有一段时间遇到这个问题,并在MS论坛上找到了我的解决方案(链接如下)。 调试诊断工具是我的罪魁祸首,但我没有必要卸载它。我为w3wp进程设置了崩溃规则,我只是删除了该规则并重新启动了所有内容。

Microsoft Forum for Unable to attach error

答案 11 :(得分:0)

在OpenVMS上,我们习惯于:

编译/调试然后链接/调试

就是这样! Simples !!

但严重的是,请确保您拥有Debugger.Break行的文件已经&#39;始终复制&#39;在重建之前在其属性中设置

答案 12 :(得分:0)

我使用Visual Studio扩展VSCommands来附加调试器(方便)。但是,IIS Express正在运行,我猜它可能会干扰。果然,当我closed IIS Express时,我突然又能够再次调试。

欢乐随之而来。

答案 13 :(得分:0)

在我的案例中,我在.Net Framework 4.6.1中有一个控制台应用程序托管网页。当我将 Debug 添加到条件编译符号时,它开始工作:

enter image description here