1

我有一个包含多个项目的解决方案。一个是 asp.net 项目,设置为使用 asp.net 开发服务器。其他项目与 asp.net 无关:例如,有些是用非托管 c++ 编写的 windows 服务,有些是 c# 控制台应用程序。

我的问题是,如果我在调试器中启动任何非asp.net 项目,Visual Studio 仍然会启动 asp.net 开发服务器。当我使用多个 Visual Studio 实例调试程序交互时,这会导致问题。当我调试 Web 应用程序时,我确实希望 Web 服务器启动。

我注意到,当我调试非 asp.net 项目时,使用 asp.net 项目属性中指定的端口号和虚拟目录启动 asp.net 开发服务器。这些项目之间没有项目依赖关系。

有没有办法告诉 Visual Studio 只为实际指定应该使用它的项目启动开发服务器?

编辑 1:重现此行为:

  1. 使用 vs2010,创建一个空的解决方案。
  2. 添加一个接受所有默认值的 c++ 控制台应用程序。fgetchar()添加对生成的调用,main()以便它在运行时不会立即退出。
  3. 在调试器中运行项目,注意到 asp.net 开发服务器没有启动。
  4. 向解决方案添加一个 asp.net Web 应用程序项目,接受所有默认值。转到项目属性 web 选项卡并验证它是否已配置为使用 asp.net 开发服务器。
  5. 将 c++ 控制台应用程序设置为启动项目,然后在调试器中启动 c++ 项目。请注意,asp.net 开发服务器现在启动,即使 Web 应用程序项目没有运行。

编辑 2:澄清我希望在调试 Web 项目时启动服务器,而不是在调试其他非 Web 项目时启动。

4

2 回答 2

2

我有一个适合我的解决方案。

似乎 web 项目有一个属性来控制在调试器启动时是否启动 asp.net 开发服务器,即使 web 项目本身没有被调试

要更改此属性,请在解决方案资源管理器中选择 Web 项目,然后按 F4 访问属性网格。在网格中,标题 Development Server 下是一个名为 Always Start When Debugging 的布尔属性。默认值是true。

当我将此属性设置为 false 时,当我调试非 Web 应用程序项目时,asp.net 开发服务器不再启动。

属性是持久化的<ProjName>.csproj.user,不是<ProjName>.csproj

于 2013-01-23T17:25:47.680 回答
0

在 Web 项目的属性中,在“Web”选项卡下,您可以将启动行为更改为“使用自定义 Web 服务器”。这将停止 VS 调用 IIS 或 ASP.NET 开发服务器实例。

于 2013-01-23T10:32:46.843 回答