如何防止 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Visual Studio 警告缺少调试信息?

如何在没有Javascript调试的情况下在网站启动时在Visual Studio中启动新的Chrome实例?

Visual Studio 2017 调试错误:为了防止在评估函数 *.toString 时发生不安全的中止,所有线程都被允许运行

使用 Visual Studio,如何防止网络共享上的发布项目被用户锁定?

应用程序启动时的 Visual Studio 远程调试

为啥我调试时 Visual Studio 会启动多个 WebDev?