Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“不正确”;无法启动调试…无法附加到ASP.NET工作进程“;Delphi 2007 for.NET中的消息_Asp.net_Delphi_Delphi 2007_Delphi.net - Fatal编程技术网

“不正确”;无法启动调试…无法附加到ASP.NET工作进程“;Delphi 2007 for.NET中的消息

“不正确”;无法启动调试…无法附加到ASP.NET工作进程“;Delphi 2007 for.NET中的消息,asp.net,delphi,delphi-2007,delphi.net,Asp.net,Delphi,Delphi 2007,Delphi.net,我已经看了很久了,最后决定把这个问题提出来。我有一些需要维护的应用程序是用Delphi2007 for.NET(ASP.NET2.0)编写的。通常,我第一次运行应用程序(使用IIS)时会收到经典的“无法在web服务器上启动调试。无法附加到ASP.NET工作进程”消息。我只需再次按F9(运行),它就会运行。有时我必须试着跑几次,它才会真正跑起来 我运行的是64位Windows 7(在Vista 64位上也看到了同样的效果)。我确实为ASP.NET配置了IIS,并且在我的Web.config文件中有

我已经看了很久了,最后决定把这个问题提出来。我有一些需要维护的应用程序是用Delphi2007 for.NET(ASP.NET2.0)编写的。通常,我第一次运行应用程序(使用IIS)时会收到经典的“无法在web服务器上启动调试。无法附加到ASP.NET工作进程”消息。我只需再次按F9(运行),它就会运行。有时我必须试着跑几次,它才会真正跑起来

我运行的是64位Windows 7(在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框架上运行“修复”(通过控制面板-->添加/删除程序)。然后可能会在那之后重新启动计算机…

如果您有此问题,您将继续有此问题。然而,这里有一个解决方法

首先运行项目而不进行调试,然后在项目运行后附加到项目。要执行此操作,请选择运行|不调试运行,或按Ctrl-Shift-F9

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

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

显然,由于应用程序已经在运行,因此不涉及放弃并给出错误消息的内容

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


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

我目前正在处理另一个项目。当我回到Delphi for.NET时,我将尝试这个。谢谢你的建议。好的,回到这个项目上来。我修复了.NET 2.0 Framework SDK(这是程序和功能小程序中唯一的.NET项。我在Windows 7中运行)。事情似乎稍微好了一点,但我仍然经常看到这种行为。我很确定这是Delphi2007 for.NET内部正在发生的事情。似乎调试器不知怎么超时了。我之所以得出这个结论,是因为在显示此错误消息之前,有时我可以单击ASP.NET应用程序的2或3个不同页面。显然,错误信息是错误的。而且,错误似乎是由调试器引发的。在这一点上,我认为Embarcadero在一个已被弃用的特性(Delphi for.NET)中修复此特性的可能性几乎为零。