繁体   English   中英

Delphi 2007 for .NET中的“无法启动调试...无法附加到ASP.NET辅助进程”消息

[英]Incorrect “Unable to start debugging…Unable to attach to ASP.NET worker process” message in Delphi 2007 for .NET

我已经看了很久了,最后决定把问题放在这里。 我有一些我需要维护的应用程序是用Delphi 2007 for .NET(ASP.NET 2.0)编写的。 通常,我第一次运行应用程序(使用IIS)时,我会得到经典的“无法在Web服务器上启动调试。无法附加到ASP.NET工作进程”消息。 我只需按F9(运行)再次运行。 有时我必须尝试运行几次才能实际运行。

我正在运行Windows 7 64位(并且在Vista 64位上看到了相同的效果)。 我确实为ASP.NET配置了IIS,并且我的Web.config文件中有以下代码。

  <system.webServer>
      <modules>
         <add name="DbgConnect" type="Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=10.5.0.0,
           Culture=neutral, PublicKeyToken=b0524c541232aae7" preCondition="managedHandler" />
      </modules>
      <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>

关键是我最终可以在调试器中运行应用程序,有时甚至是第一次尝试。 很多时候,当我遇到故障时,它会在我按下Run后大约15秒左右发生,有时甚至在我点击一两页(或三个)Web应用程序之后。 并且,是的,当Delphi进入这种模式时,我可以简单地运行而无需调试,一切都很好(除非我真的想调试)。 并且,我可以继续尝试在调试器中运行,最终它将正常工作。

似乎Delphi的.NET调试器在某种程度上得到了应用程序无法运行的想法,然后放弃并停止进程(正如我所提到的那样,有时候显然正在运行)。

我知道其他开发者也看到了这种行为。 我的问题是,有谁知道如何阻止这种烦人的行为?

我不记得确切的错误信息,但我相信我在过去看到的内容至少与此类似。 我所做的就是在.NET 2.0 Framework上运行“修复”(通过控制面板 - >添加/删除程序)。 然后可能会重启你的电脑......

如果您遇到此问题,您将继续遇到此问题。 但是,这是一个解决方法。

首先运行您的项目而不进行调试,然后在它运行后附加到它。 为此,请选择“运行”| 无需调试运行,或按Ctrl-Shift-F9。

一旦您的应用程序启动并运行,并且您希望调试器的服务可用,请选择Run | 附加到流程。 从Attach to Process对话框中,将Debugger下拉列表设置为CodeGear .NET Debugger。 IIS现在将显示在“正在运行的进程”列表框中。 在我的机器上,它显示为w3wp.exe。 取消选中“附加后暂停”复选框,然后单击“附加”。 (第一次使用“附加到进程”对话框后,它将默认为.NET调试器,并且不会选中“附加后暂停”。)

您现在正在运行启用调试器。 如果遇到断点,或遇到异常,或选择Run | 程序暂停,将加载调试器。 如果要在不关闭应用程序的情况下禁用调试器,请选择“运行”| 脱离计划。

显然,由于应用程序已在运行,因此不会放弃任何放弃并提供错误错误消息的内容。

在加号上,使用这种方法调试Delphi for .NET应用程序有一个很好的副作用。 一旦运行并发现问题,您可以进入调试器并查看内部发生的情况。 如果您发现要修复的问题,请从进程中分离,修复问题并重新编译。 您可以让您的应用程序在IIS中运行。

重新编译项目后,使用IIS在应用程序中命中的下一页将导致加载更新的程序。 如果再次需要调试器,只需附加到IIS进程即可。 换句话说,您需要调试,修复,重新编译,调试,修复,重新编译,...而无需在浏览器中关闭应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM