代码之家  ›  专栏  ›  技术社区  ›  willem

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

  •  20
  • willem  · 技术社区  · 15 年前

    我以前可以连接到w3wp进程并调试web应用程序,但现在已经不起作用了。我不知道是什么改变了这个。我使用的是VisualStudio2008SP1。我正在IIS中调试,而不是使用ASP。NET自己的服务器(即,我不运行我的项目,我只是连接到一个正在运行的进程(w3wp)。

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

    我尝试过:

    • 我找到了解决办法。
    • 重建了一个解决方案。
    • 确保我的网站中的compilation debug=true。配置文件。
    • 删除了文件夹bin
    • 重新启动Visual Studio
    • 重新启动IIS
    • 重启我的电脑
    • 添加了一个简单的回答。写入以确保正在使用最新的DLL。它是。
    • 确保调试ASP。NET已签入我的项目属性。它是。
    • 确保我的所有项目都在我的构建配置中编译。他们是。

    但这些都没有帮助。我连接到w3wp,但我的断点从未被击中。

    有什么想法吗?

    14 回复  |  直到 15 年前
        1
  •  10
  •   Gautam    15 年前

    我最近遇到了这个问题,我首先确定Visual Studio在系统上根本没有运行。

    然后进入该文件夹并删除其所有内容:

    C:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
    
        2
  •  8
  •   citronas    15 年前

    查看你的网页。配置

    <compilation debug="true">...
    
        3
  •  3
  •   Zhaph - Ben Duguid    15 年前

    当您“附加到进程”时,输出窗口应该向您显示(当显示“调试”的输出时)加载的所有库,以及加载它们的位置——对于/bin文件夹中的dll,这些库通常会复制到 \Temporary ASP.NET Files\root\ 文件夹-从哪里读取你的文件?你真的把他们清除了吗?

    我唯一能想到的是:

    1. 您已经在“发布”模式下编译了代码,而不是在“解决方案配置”下拉列表中的“调试”(而不是web.config)。
    2. /bin文件夹中缺少符号文件(.pdb)。

    在项目属性的“构建”选项卡上,您处于“活动(调试)”配置中,您没有选中“优化代码”吗?

    如果你点击“高级…”在该选项卡上,“调试信息”的值是多少?是“满”还是“无”?

    回应评论

    如果你的代码是在“发布”模式下编译的,你会发现很难成功调试,而且当你在更改后没有重新生成符号(.pdb文件)时,你经常会收到“源代码不同”的消息——但是你说你已经完成了清理/重新生成,所以 应该 盖上。

    是的,您的输出窗口将显示您正在引用的所有框架DLL以及您的代码——但您应该看到其中列出了一个文件,其中包含每个项目输出的名称——这些是要查看的文件。

    您没有一些生成后事件将文件移动到站点的正确目录中,是吗?

        4
  •  3
  •   Mr. Bungle    14 年前

    我也遇到了这个问题,通过在“附加到进程”对话框中将“附加到”代码类型更改为自动,解决了这个问题。(之前我将此设置为“Silverlight Code”,因为调试了另一个进程……很容易忘记将其更改回来。)

        5
  •  2
  •   Digital Chilli    12 年前

    我知道这个问题已经存在了一段时间,但我认为它和我所经历的是一样的:

    我无法调试我的程序。aspx服务器端代码。我有一个正在运行的WepApp AnyCPU项目,我想链接到一些x86 DLL,所以我创建了一个x86调试目标。做了类似的事情,重建,停止开发web服务器,重新启动,清除临时文件,所有这些都无济于事。

    通过将目标文件夹更改为bin\(was bin\x86\Debug)修复了该问题。

        6
  •  1
  •   David Fox    15 年前

    在“附加到进程”对话框中,单击“显示来自所有用户的进程”复选框(底部附近),如果您看到两个w3wp。exe进程,尝试另一个。

    其中一个应该有一个注释/描述值,类似于T-SQL、managed something或Other。这就是你想要的。

        7
  •  1
  •   Chris Marisic    15 年前

    您是否正在运行任何可能会影响此功能的加载项?或者任何将生成后操作应用于开始调试的DLL的源代码的工具都在生成后进行了修改,并且它实际上是正确的,因为它不是相同的源代码,所以调试无法工作?

    你也试过重置VS吗?

    devenv.exe /resetsettings

    编辑: 如果这些信息都没有帮助到你,那么卸载并重新安装VS和SP1可能是值得的。如果你经历了这件事,并且事后的问题是相同的,那么至少可以确保问题存在于网络中的任何一方。配置或项目设置。

        8
  •  1
  •   HoKy22    11 年前

    你检查你的装配了吗。具有此属性的cs文件

    [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.Default)]
    

    在反映了一个优化的代码之后,你可能会得到这个。所以你必须删除它才能再次调试。

        9
  •  1
  •   Anton Lyhin    9 年前

    我也面临同样的问题。w3wp进程占用了大量内存,不希望在web应用程序发布时重置。

    按Ctrl+Alt+Delete>转到“流程”选项卡>查找w3wp流程和 杀了它。再次运行应用程序(如果这是mvc应用程序,只需转到 自动重新创建w3wp进程的相关url)。

    之后警告就会消失。

        10
  •  1
  •   Sibeesh Venu    8 年前

    我在Visual Studio 2013更新4中尝试了以下所有选项。

    1. 重置IIS
    2. 清洁解决方案和重建
    3. 从临时文件夹中删除薯条 C:\Windows\Microsoft。Net\Framework。。。\临时ASP。NET文件
    4. 检查编译标记是否为debug

    但它们都不起作用,我在这里列出了对我起作用的两件事。

    1. 禁用“仅我的代码”选项 工具->选项->调试->一般->取消选中“仅启用我的代码”。
    2. 编辑网页。配置文件并保存(您始终可以在任何行中创建空间) 在网上。配置,可以了)

    请注意,这个解决方案可以是特定于Visual Studio版本的,这两个修复在我的Visual Studio 2013更新4中都适用。

        11
  •  0
  •   Pam    11 年前

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

    Microsoft Forum for Unable to attach error

        12
  •  0
  •   Reg Hammond    9 年前

    在OpenVMS上,我们只是:

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

    就这样!简单!!

    但说真的,确保你的文件中有调试器。换行,在重新构建之前在其属性中设置“始终复制”

        13
  •  0
  •   Community CDub    7 年前

    我正在使用VisualStudio扩展VSCommands附加调试器(方便)。然而,IIS Express正在运行,我猜它可能会干扰。当然,当我 closed IIS Express ,突然我又能调试了。

    欢乐随之而来。

        14
  •  0
  •   Mik    7 年前

    在我的例子中,我有一个控制台应用程序在托管的网页中。Net框架4.6.1。当我添加一个 调试 条件编译符号 ,它开始工作:

    enter image description here

        15
  •  0
  •   NegativeFeedbackLoop    3 年前

    确保“当前页面”而不是“不要打开页面。等待外部应用程序的请求”在属性下选中->网络->开始行动。