错误:无法在 Web 服务器上启动调试

当尝试对运行在 Web 服务器上的应用程序进行调试时,有时可能会得到此错误信息:

Unable to start debugging on the Web server

如果您的消息更长一些,则会用这个消息的子主题覆盖您的消息。

如果遇到此错误,则需要考虑几个问题。 首先转到“要检查的内容”,然后根据硬件和软件配置考虑其余几项内容。

  • 要检查的内容

  • 远程服务器上的 Web 应用程序

  • 存储在 Visual SourceSafe 中并使用 FrontPage 服务器扩展的 Web 应用程序

  • 手动附加

  • 因语法无效,服务器未能处理调试请求

要检查的内容

请尝试检查下列内容:

  • 检查 ASP.NET 或 ATL Server 的设置过程。 有关更多信息,请参见调试 ASP.NET 的准备工作

  • 您是否具有进行调试所必需的访问特权? 有关更多信息,请参见 ASP.NET 调试:系统要求 中的**“安全要求”**一节。

  • 您是否正在运行一个允许 Visual Studio 调试器自动附加到 Web 应用程序的 Windows 版本? 如果不是,则需要启动应用程序而不调试,然后手动附加到它。 (有关更多信息,请参见“手动附加”和 ASP.NET 调试:系统要求。)

  • 您的 Web 应用程序是否具有 Web.config 文件?

    • Web.config 文件是否通过将 debug 特性设置为 true 而启用了调试模式? 有关更多信息,请参见如何:为 ASP.NET 应用程序启用调试

    • Web.config 文件是否包含任何语法错误? 您可以通过运行 Web 应用程序而不调试来检查是否存在语法错误。 (从“调试”菜单中,选择**“开始执行(不调试)”**。)如果在 Web.config 中存在语法错误,则会显示详细信息。

  • 您是否是通过指定特定的 IP 地址(如 100.20.300.400)而创建了项目? 调试 Web 服务器要求 NTLM 身份验证。 默认情况下,IP 地址被假定为 Internet 的一部分,而在 Internet 上不进行 NTLM 身份验证。 若要更正这一问题:

    • 创建项目时,指定 Intranet 上计算机的名称。

      - 或 -

    • 将 IP 地址 (http://100.20.300.400) 添加到您的计算机上的受信任站点列表中。 (从 Internet Explorer 的“工具”菜单中,选择“Internet 选项”,然后选择“安全”选项卡)。

    是否在服务器计算机上注册了必要的扩展? 如果尚未注册,请按下面过程中介绍的方法重新注册 ASP.NET。

  • 是否在安装 Visual Studio 后,将 IIS 安装到运行 Visual Studio 的本地计算机上? IIS 应在安装 Visual Studio 之前安装。 如果在之后安装,则可能需要重新注册 ASP.NET。

    重新注册 ASP.NET

    1. 从命令提示窗口中,运行下列命令:systemroot\Microsoft.NET\Framework\ versionNumber \aspnet_regiis -i

      注意   对于 Windows Server 2003,可以使用“添加/删除程序”控制面板安装 ASP.NET。

    2. 插入 Visual Studio 光盘,运行安装程序,然后选择**“修复/重新安装”**。 此步骤将创建 wwwroot$ 共享目录并添加适当的权限。

  • 启用集成身份验证后站点名称是否映射到本地环回地址? 有关解决方案,请参见此知识库文章

  • 是否正确地指定了项目起始页的 URL? 扩展名和项目目录是否正确?

  • 验证 Web 应用程序的 IIS 设置。 有关更多信息,请参见如何:验证 IIS 属性设置

  • 如果您在 Web 服务器上安装了两个版本的 .NET Framework,则请验证是否在 IIS 设置中设置了正确的版本。 有关更多信息,请参见如何:验证 IIS 属性设置

远程服务器上的 Web 应用程序

如果 Web 应用程序在远程服务器上,请首先确保仔细检查了“要检查的内容”中的各项内容。 接下来请检查以下内容:

  • 运行 IIS 服务器的计算机是否已安装 Visual Studio 远程组件? 有关更多信息,请参见调试 ASP.NET 的准备工作

  • 您是否具有进行调试所必需的访问特权? 有关更多信息,请参见 ASP.NET 调试:系统要求 中的**“安全要求”**一节。

  • 您是否正在使用“终端服务器”尝试调试远程计算机上的 Web 应用程序? 在 Windows XP 下,支持使用“终端服务器”对本机 Web 应用程序进行远程调试。 而在 Windows 2000 或 Windows NT 下则不支持。

存储在 Visual SourceSafe 中并使用 FrontPage 服务器扩展的 Web 应用程序

如果 Web 应用程序存储在 Visual SourceSafe 中并且使用 FrontPage 服务器扩展作为它的 Web 访问模式,则请检查以下内容:

  • Visual SourceSafe 是否与 FrontPage 服务器/Web 服务器位于同一台计算机上? 如果是,则可以使用“集成身份验证”进行调试。 若要检查“集成身份验证”设置,请参见过程**“检查 Web 应用程序的 IIS 安全设置”**,它位于主题 如何:验证 IIS 属性设置 中。

因语法无效,服务器未能处理调试请求

有时,服务器会因语法错误而无法处理调试请求。 machine.config 文件中的错误可能导致请求语法出错。 如果 machine.config 文件将 maxRequestLength 设为一个异常巨大的值(例如 40,960,000),则会发生此错误。

手动附加

如果按照这些疑难解答步骤执行了相应操作,而在开始调试时仍然收到错误信息,则可能需要尝试通过手动附加来调试应用程序。

手动附加

  1. 启动应用程序而不调试。 (从**“调试”菜单中,选择“开始执行(不调试)”**。)

  2. 确定适当的 IIS 进程或辅助进程的名称。 默认情况下,ATL Server 应用程序名为 inetinfo.exe。 若要确定 ASP.NET 辅助进程的名称,请参见如何:查找 ASP.NET 进程的名称

    使用下面的过程之一来确定 ASP.NET 或 ATL Server 应用程序在哪个进程下运行。

  3. 附加到前一步骤确定的进程。 有关更多信息,请参见如何:附加到运行进程

检查 ASP.NET 应用程序在哪个进程下运行

  1. 使用 Visual Studio 或其他文本编辑器打开应用程序的 machine.config 文件。

  2. 在 system.web 节点内,查找 ProcessModel 节点,然后检查它的 enable 特性:

    如果 enable 设置为 TRUE,则应用程序在 aspnet_wp.exe 或 w3wp.exe 下运行。 (这也是默认设置。)

    如果 enable 设置为 FALSE,则应用程序在 inetinfo.exe 下运行。

检查 ATL Server 应用程序在哪个进程下运行

  1. 在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择**“属性”**。

  2. 在**“<项目> 属性页”对话框中,打开“Web 部署”文件夹,然后选择“常规”**。

  3. 查看**“应用程序保护”**设置。

    如果此设置为**“低(IIS 进程)”**,则应用程序在 inetinfo.exe 下运行。

    如果此设置为**“中等(池)”**,则应用程序在 dllhost.exe 进程下运行(与其他放入池中的 ATL Server 应用程序相同)。

    如果此设置为**“高(独立)”**,则应用程序在 dllhost.exe 进程下运行(与其他 ATL Server 应用程序隔离)。

  4. 单击**“确定”关闭“<项目> 属性页”**对话框。

请参见

任务

错误:Web 服务器未能找到请求的资源

参考

调试 Web 应用程序:错误和疑难解答

其他资源

调试 ASP.NET 的准备工作