VS 2003 - IDE 永远不会遇到断点

Posted

技术标签:

【中文标题】VS 2003 - IDE 永远不会遇到断点【英文标题】:VS 2003 - The IDE never hits a breakpoint 【发布时间】:2014-10-13 20:39:01 【问题描述】:

我有一个相当旧的 VS 2003 Web 应用程序,我终于能够通过 F5 运行它。但是,IDE 不会在任何断点处中断。

我认为这与配置有关。以前,当我拉起项目的属性并进入 Configuration Properties/Debugging 时,只有 Enable ASP Debugging 设置为 true。根据其他人的建议,我也启用了ASP.NET DebuggingUnmanaged Debugging。但是如果同时启用了ASP Debugging和Unmanaged Debugging,就会出现错误。

所以我禁用了 ASP 调试,它只启用了 ASP.NET 调试和非托管调试。我实际上不知道为什么要启用 Unamaged Debugging,因为据我所知,没有非托管代码。但如果未启用,则会出现另一个错误。

话虽如此,启用这两个似乎运行良好,但我无法调试。任何想法为什么?

【问题讨论】:

你是在发布模式下构建吗? 您是否尝试调试非 .net(非托管)代码?如果没有,则不需要调试器。 @DotN3TDev 否。它在默认的调试配置文件中 @spender 没有。据我所知,这都是托管 (c#) 代码。 @ernest 好的,抱歉,我认为这可能是一个快速的解决方案:/ 【参考方案1】:

嘘! VS2003!特别提到您的托管代码错误,我在一篇旧的 msdn 帖子中找到了一些步骤,该帖子引用了一个更早的帖子,其中概述了以下步骤。

基本上,为了调试那些较旧的 asp.net Web 应用程序,您需要对 IIS 和您的机器进行一些修改。下面的示例特定于 server 2008,因此您需要修改一些导航步骤以适应您的操作系统(如果不同)

我假设您可能已经安装了 IIS 7.5,如果是这样,它似乎对这篇文章中的人有用(下面的参考资料)

1 - 安装 IIS 元数据库兼容性

要在 Windows 2008 Server 上安装 - 单击开始,然后单击“服务器管理器”。

在 Web 服务器 (IIS) 下,单击添加角色服务。

确保已安装 IIS Metabase Compatibility。

2 - 安装 .Net 1.1

我按以下顺序安装了 .Net 1.1:

.Net Framework 1.1. .Net Framework 1.1 Service Pack 1 ASP.Net Security Update for .Net Framework 1.1 Service Pack 1

我仍然收到兼容性警告,但选择“运行程序”继续。

安装 Service Pack 1 可能需要重新启动。

3 – 启用 ASP.Net 1.1 ISAPI 扩展

按照选项 2 中的步骤使 ASP.NET v1.1.4322 在我的 ISAPI 和 CGI​​ 限制对话框中可用,但默认情况下被禁用。打开 Internet Explorer,单击您的服务器名称并从 IIS 部分选择 ISAPI 和 CGI​​ 限制。启用 ASP.Net v1.1.4322 作为有效的 ISAPI 扩展。

4 – 调整 machine.config

我们需要 ASP.NET 1.1 来忽略 IIS 配置部分,因此为 Framework 1.1 打开 machine.config (%windir%\Microsoft.NET\Framework\v1.1.4322\config\machine.config) 并将以下内容添加到configSections 结束。

<section name="system.webServer" type="System.Configuration.IgnoreSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

5 – 调整应用程序池

我现在需要告诉我的应用程序使用应用程序池 ASP.NET 1.1。使用 IIS 管理器,选择您正在使用的站点,然后选择“高级设置”。调整应用程序池以使用将使用 .Net Framework 1.1 的 ASP.NET 1.1。

6 – 修复 applicationHost.config 错误

IIS 运行时检测到我在 64 位操作系统上运行,因此它尝试从 Microsoft.Net\Framework64 加载 .net 框架配置,但 .Net Framework 1.1 不存在此配置。解决方法是将32位版本复制到相应的64位文件夹中。

创建\Windows\Microsoft.net\Framework64\v1.1.4322\config 从 \Windows\Microsoft.net\Framework\v1.1.4322\Config\ 复制 machine.config

参考文献

http://forums.asp.net/t/1861879.aspx?No+managed+code+running+in+the+process+IIS+and+NET+1+1 http://blogs.charteris.com/blogs/ivorb/archive/2010/07/15/installing-net-1-1-applications-on-windows-server-2008-r2.aspx

【讨论】:

我相信我以前看到过类似的东西,但由于我在 Windows Server 2003 和 IIS 6 上,所以我很犹豫是否要执行这些步骤。 嘿 ernst - 这是可以理解的。请查看我的下一个答案,让我知道这是否适合您。干杯【参考方案2】:

我可以提供的最佳建议是,尤其是由于不愿意修改现有生产配置的任何设置,是在本地工作站上进行设置;在本地开发您的代码,您可以在其中正确测试和部署任何更新到您的网络服务器。

出于好奇,您的源代码是否位于与您的开发机器不同的 Web 服务器上,即您的工作站上是否安装了 Visual Studio 2003 .NET 并尝试在 Web 服务器上远程调试项目?

如果是这种情况,如果您安装了远程组件,这显然没问题安装 Visual Studio .NET 时远程设置会自动运行,但您显然可以单独运行它:请参阅:http://msdn.microsoft.com/en-us/library/ey7ec813%28v=vs.71%29.aspx

也就是说,我发现的其他线程说这可能不值得麻烦(除非你真的想试一试),最好的方法是重新安装开发工作站拥有您需要的一切,并从那里为您的项目编写代码。

祝你好运。

【讨论】:

以上是关于VS 2003 - IDE 永远不会遇到断点的主要内容,如果未能解决你的问题,请参考以下文章

VC++ makefile 项目永远不会更新

Apollo 订阅解析器永远不会激活?

GPIB:永远不会被淘汰 (转载)

您是不是需要一个实时操作系统来确保您的程序永远不会脱离 CPU?

如何在 VS Code 中调试夜班测试

Cordova iOS deviceready 永远不会触发