我有一个包含许多项目的解决方案。一个是asp.net项目,并设置为使用asp.net开发服务器。其他项目与asp.net无关:例如,一些是以非托管C++编写的Windows服务,其他则是c#控制台应用程序。ASP.NET开发服务器
我的问题是,如果我在调试器中启动任何nonasp.net项目,Visual Studio仍会启动asp.net开发服务器。当我使用Visual Studio的多个实例调试程序交互时,这会导致问题。当我调试Web应用程序时,做想让Web服务器启动。
我注意到,当我调试一个nonasp.net项目时,asp.net开发服务器启动时使用在asp.net项目属性中指定的端口号和虚拟目录。这些项目之间没有项目依赖关系。
有没有办法告诉visual studio只为实际指定它应该使用的项目启动开发服务器?
编辑1:要重现此问题:
- 使用VS2010,创建一个空的解决方案。
- 添加一个接受所有默认值的C++控制台应用程序。将
fgetchar()
添加到生成的main()
,以便在运行时不会立即退出。 - 在调试器中运行该项目,并注意到asp.net开发服务器确实启动了而不是。
- 向解决方案添加一个asp.net Web应用程序项目,接受所有默认值。转到项目属性web选项卡,并验证它是否配置为使用asp.net开发服务器。
- 将C++控制台应用程序设置为启动项目,然后在调试器中启动C++项目。请注意,即使Web应用程序项目没有运行,asp.net开发服务器现在也会启动。
编辑2:说明我希望服务器在调试Web项目时启动,但不是在调试其他非Web项目时启动。
我没有想到web服务器确实启动了非web项目?非网络项目的解决方案是否有任何Web项目?你有没有打算在你里面有多个启动项目? (http://msdn.microsoft.com/en-us/library/ms165413.aspx)如果多个启动项目包含任何Web项目? – mortb
@mortb当我调试一个非web项目时,web服务肯定会启动 - 我会看到一个通知弹出窗口,显示端口和vpath。我检查了解决方案中没有多个启动项目。非网络项目中没有Web项目。感谢您的回应! –