ASP.NET开发服务器

时间:2013-01-23 10:03:23

标签: asp.net visual-studio-2010

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

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

我注意到当我调试一个nonasp.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 ++项目。请注意,即使Web应用程序项目未运行,asp.net开发服务器现在也会启动。
  6. 编辑2:澄清我希望服务器在我调试Web项目时启动,但不是在调试其他非Web项目时启动。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

该属性保留在<ProjName>.csproj.user,而不是<ProjName>.csproj

答案 1 :(得分:0)

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