错误:无法在 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
从命令提示窗口中,运行下列命令:systemroot\Microsoft.NET\Framework\ versionNumber \aspnet_regiis -i
注意 对于 Windows Server 2003,可以使用“添加/删除程序”控制面板安装 ASP.NET。
插入 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),则会发生此错误。
手动附加
如果按照这些疑难解答步骤执行了相应操作,而在开始调试时仍然收到错误信息,则可能需要尝试通过手动附加来调试应用程序。
手动附加
启动应用程序而不调试。(从**“调试”菜单中,选择“开始执行(不调试)”**。)
确定适当的 IIS 进程或辅助进程的名称。 默认情况下,ATL Server 应用程序名为 inetinfo.exe。 若要确定 ASP.NET 辅助进程的名称,请参见如何:查找 ASP.NET 进程的名称。
使用下面的过程之一来确定 ASP.NET 或 ATL Server 应用程序在哪个进程下运行。
附加到前一步骤确定的进程。 有关详细信息,请参阅<PAVE OVER> 如何:附加到运行的进程。
检查 ASP.NET 应用程序在哪个进程下运行
使用 Visual Studio 或其他文本编辑器打开应用程序的 machine.config 文件。
在 system.web 节点内,查找 ProcessModel 节点,然后检查它的 enable 特性:
如果 enable 设置为 TRUE,则应用程序在 aspnet_wp.exe 或 w3wp.exe 下运行。(这也是默认设置。)
如果 enable 设置为 FALSE,则应用程序在 inetinfo.exe 下运行。
检查 ATL Server 应用程序在哪个进程下运行
在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择**“属性”**。
在**“<项目> 属性页”对话框中,打开“Web 部署”文件夹,然后选择“常规”**。
查看**“应用程序保护”**设置。
如果此设置为**“低(IIS 进程)”**,则应用程序在 inetinfo.exe 下运行。
如果此设置为**“中等(池)”**,则应用程序在 dllhost.exe 进程下运行(与其他放入池中的 ATL Server 应用程序相同)。
如果此设置为**“高(独立)”**,则应用程序在 dllhost.exe 进程下运行(与其他 ATL Server 应用程序隔离)。
单击**“确定”关闭“<项目> 属性页”**对话框。