【问题标题】:"Mixed mode debugging is not supported on Windows 64-bit platforms" when trying to attach to an ASP.NET process using Visual Studio 2008尝试使用 Visual Studio 2008 附加到 ASP.NET 进程时,“Windows 64 位平台不支持混合模式调试”
【发布时间】:2009-04-02 04:36:47
【问题描述】:

在 .NET 2.0 和 VS.NET 2005 中调试 ASP.NET 应用程序时,我非常习惯附加一个进程。我不知道在 VS.NET 2008 中这个功能发生了什么。

我也不想从起始页开始进行调试,因为当应用程序足够大时,您不希望它被编译,并且有时您无法从一开始就捕获一个案例,而您想捕获该案例在那段时间。

我想不出这个。

我正在运行带有 VS.NET 2008 Team Suite 的 Vista Ultimate x64。

此外,在网站属性页面的启动选项中,服务器被选择为“使用默认 Web 服务器”,并且自定义服务器显示为灰色,我无法检查。 (我不知道我是否需要在这里进行一些更改,但我什至无法尝试)

最重要的是,我尝试从默认页面进行调试,但在这种情况下,我得到的是“无法在 Web 服务器上开始调试。Windows 64 位平台不支持混合模式调试”。什么?无论如何,我进入解决方案的配置管理器并将混合模式更改为 ANY CPU,但是没有运气。

没有调试的帮助会使 ASP.NET 降低到 PHP 或其他类型的水平。

补充说明:

  1. 我正在使用 DotNetNuke 5.0.1 并在其下构建模块。
  2. IIS 7 与集成模式一起使用。

【问题讨论】:

  • 谢谢,到目前为止,我在 DNN 方面取得了很多成功。

标签: asp.net visual-studio visual-studio-2008 debugging iis


【解决方案1】:

我在 64 位 Vista 上找到的用于调试的密钥如下。

1.) 确保 Web 应用程序在 IIS 而非 Cassini 中完全运行(http://localhost 地址) 2.) 附加到 w3wp.exe 进程时,请确保选择类型为 T-SQL、托管、x64 的进程,而不是仅显示 x64 类型的进程

按照这两个步骤,我已经解决了我遇到的所有问题。与您上面列出的类似。

【讨论】:

  • 嗨米切尔,我不明白卡西尼部分。实际上,我已经修改了我的主机文件并添加了以下 mysite 127.0.0.2 并为该(新站点)设置了 IIS,并在解决方案中使用它并打开该站点mysite,然后尝试附加它。您认为这是问题所在吗?
  • 如果是这个问题,如何解决?你有什么建议?
  • 您列出的内容意味着您在 IIS 下正确。您是否偶然将 IIS 配置为在 32 位模式下运行?
  • 嗨,米切尔,我还没有这样做。它纯粹在 64 位下运行。实际上一切都按预期工作,除了现在像噩梦一样的调试。
  • SevDer - 向我发送一封电子邮件,其中包含显示您正在运行的进程的屏幕。 msellers@iowacomputergurus.com。 (我在 Vista 64 位上做了大量的 DNN 没有问题)
【解决方案2】:

顺便说一句,对于基于相同错误消息(至少在我的情况下)发现这篇文章的其他人来说,是在 IIS 中修改应用程序池。转到高级设置,将“启用 32 位应用程序”更改为 True。 VS2010,Win 7 64位。

【讨论】:

    【解决方案3】:

    好的,听起来您遇到了一些问题。

    1) webdev 服务器的自动启动:这通常是由于您的解决方案中的项目设置为“始终在调试时启动”引起的。只需在解决方案资源管理器中单击项目,然后按 F4 即可打开属性窗口,并将其从“True”更改为“False”。您可能需要检查解决方案中的所有项目。

    2) 当站点发布到真正的 IIS 时,应该附加到进程,我假设您正在这样做。我对 Vista 下的 IIS 并不完全熟悉,但您需要深入了解它并确保为您的 Web 应用程序启用了调试功能。如果您这样做,则无需费心使用起始页或使用自定义服务器。

    希望对一些人有所帮助。

    【讨论】:

    • 1.我实际上没有这样的选择。我只有“项目文件”和“项目文件夹”。对于 web 项目,我有“完整路径”和“打开的 URL”,所有这些都是灰色的。 2. 是的,我在 IIS 中做 int,我一直都在做。也启用了调试。 2.
    • 你确定你有一个网络项目吗?这听起来像是一个类库。
    • 我有一个包含类库和 Web 项目的解决方案。
    • 至少我发现“ASP.NET 开发服务器”正在启动,因为我在项目中有一个 web 服务。禁用该功能后,我可以接受。但是仍然无法调试。
    【解决方案4】:

    Mitchel Sellers 提供了帮助。 他指出调试模式没问题,但是在附加到进程时,“附加到”是“自动:本机代码”。

    更改为仅“托管代码”或仅选择“托管代码”后,它开始工作。

    谢谢米切尔。

    这是米切尔的最后一句话:

    “脚本”选项用于经典的 ASP 脚本,它总是在 32 位模式下运行,因此同时调试 T-SQL 和脚本会导致“混合模式”,因为 T-SQL 是 64 位的默认。此外,如果不选择“托管”选项,您将永远无法调试。

    现在,为什么不一样?我不确定,但一旦你改变它,你应该准备好迎接未来。

    【讨论】:

    • SevDer,然后把 TICK 给 Mitchel 而不是你自己 :)
    • 我很想把它交给米切尔,但同时我想向其他人展示真正的答案是什么。 Plust 自己打勾不会给你任何分数。至少在我的情况下它没有:)。
    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2013-02-24
    • 2011-06-02
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多