如何防止 Visual Studio 在调试时启动 WcfSvcHost.exe?
Posted
技术标签:
【中文标题】如何防止 Visual Studio 在调试时启动 WcfSvcHost.exe?【英文标题】:How to prevent Visual Studio from launching WcfSvcHost.exe while debugging? 【发布时间】:2010-09-21 22:34:07 【问题描述】:我在 Visual Studio 2008 中有一个解决方案,它有多个项目。其中一个项目是 WCF 项目。有时我只想调试其他项目,但是当我按 F5 时,Visual Studio 已启动 wcfsvchost.exe 来托管 WCF 项目,即使它不是“启动项目”。
目前,每次调试其他项目时,我都必须卸载 WCF 项目,以防止烦人的 WcfSvcHost.exe 主机弹出。但是,这并不方便。有谁知道防止 WCF 项目在调试模式下托管的更好主意?
【问题讨论】:
这在 VS 2017 中再次抬头。没有启用它的项目现在在打开解决方案时会弹出主机。 【参考方案1】:转到 WCF 项目属性页中的 WCF 选项部分,取消选中“在同一解决方案中调试另一个项目时启动 WCF 服务主机”复选框。
【讨论】:
这需要 VS 2008 的 SP1,否则您需要按照 CheGueVerra 的建议“手动”完成。 我在 Visual Studio 2017 中找不到这个选项!【参考方案2】:如果你已经创建了WCF Project,然后改成Console项目,发现WCF Service Host还在启动,编辑项目,编辑ProjectTypeGuids,去掉WCF Project类型:
旧:
<ProjectTypeGuids>3D9AD99F-2412-4246-B90B-4EAA41C64699;FAE04EC0-301F-11D3-BF4B-00C04F79EFBC</ProjectTypeGuids>
新:
<ProjectTypeGuids>FAE04EC0-301F-11D3-BF4B-00C04F79EFBC</ProjectTypeGuids>
【讨论】:
这个对我有用,谢谢。在 VS 中将项目类型从类库更改为控制台应用程序似乎还不够。 天哪!我知道这已经过时了,但就在今天我在 VS2013 上遇到了这个问题。这解决了它。 仅供参考...只是注释掉 XML 元素ProjectTypeGuids
不会禁用 WCF 选项,您必须从项目文件中完全删除 GUID 3D9AD99F-2412-4246-B90B-4EAA41C64699
。最好将 XML 元素 ProjectTypeGuids
一起从项目中删除。【参考方案3】:
您可以尝试在解决方案中卸载 WCF 项目,然后进行调试。
对不起,我误读了最后一部分,我知道的唯一另一种方法是在项目的属性组中注释掉 Web 部件。这阻止了我的弹出窗口
卸载项目,注释掉提到的部分,重新加载。
<!--<PublishUrl>http://localhost/WindowsFormsApplication1/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>-->
【讨论】:
正如我在问题中所说,这正是我现在所做的。还有其他方便的方法吗? 为我解决了卸载问题!【参考方案4】:不确定这是否能解决您的问题,但如果您在解决方案资源管理器中单击 WCF 项目,请查看它是否具有“调试时始终启动”属性。如果是,请将其设置为 false。不过,该属性仅针对某些项目类型显示,因此它完全取决于您使用的项目模板类型。
【讨论】:
以上是关于如何防止 Visual Studio 在调试时启动 WcfSvcHost.exe?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有Javascript调试的情况下在网站启动时在Visual Studio中启动新的Chrome实例?
Visual Studio 2017 调试错误:为了防止在评估函数 *.toString 时发生不安全的中止,所有线程都被允许运行