【问题标题】:While Debugging IIS from VS2008 Website Is Unresponsive从 VS2008 网站调试 IIS 时无响应
【发布时间】:2011-06-25 22:18:54
【问题描述】:

我有一个在 IIS 7.5 的本地实例中运行的 Web 应用程序。我的应用程序池的最大工作进程为 3。当我转到 Vs2008 并将调试器附加到本地 IIS 时,我看到了三个 w3wp.exe 进程,如预期的那样。我附在所有三个。当我运行一个网页时,我的断点在我的代码中命中,正如预期的那样。

问题出在这里:在我的 C# 代码后面的代码中,我调用了另一台计算机上的服务,而该服务又将请求发送回我的本地 IIS 框。这都是同步的。问题是,当我在调试器中时,远程代码对我的 IIS 框的调用似乎立即失败。如果我在调试时继续到那个远程机器并尝试从我的本地机器中提取任何 URL,它就会挂起。而且,只要我在 VS2008 中按 F5,浏览器就会释放并满足请求。

那么为什么 VS2008 调试器会导致 IIS 不使用任何其他工作进程来服务其他传入请求?

感谢您的任何想法。

【问题讨论】:

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


    【解决方案1】:

    当您调试任何进程时 - 所有线程都会挂起。

    所以你所描述的是预期的行为。您正在 IIS 中调试一个线程,整个进程挂起,直到您按 F5 并将控制权返回给该进程。

    【讨论】:

    • 我认为我在上面选择的措辞可能会造成混淆。让我重新声明一下:我在应用程序池中的“Maximium Worker PROCESSES”设置是 3。所以我可以附加三个正在运行的 EXE (w3wp.exe)。所以,首先,如果我正在调试一个进程,那么我不确定为什么其他两个进程没有提供第二个请求。其次,当你说停止线程停止时,我不明白你的意思整个过程。我做过很多多线程开发,肯定不是这样。你可以在VS调试器中冻结和解冻线程。
    • 我的意思是当你在断点处停止时,所有其他线程都不会在后台运行。
    猜你喜欢
    • 1970-01-01
    • 2016-03-19
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多