如何以编程方式检查WCF Http / Non-Http Activation组件?

时间:2010-12-03 12:23:51

标签: .net windows wcf wix

我需要检测在安装产品期间是否安装了WCF Http / Non-Http Activation Components。我怎么能这样做?

感谢。

5 个答案:

答案 0 :(得分:4)

对于IIS7,请检查以下注册表项:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ InetStp \组件\

对于以下组件:

  • 流程模型 - ProcessModel
  • .NET环境 - NetFxEnvironment
  • 配置API - WASConfigurationAPI

从此页面:http://learn.iis.net/page.aspx/135/discover-installed-components/

更新:由于即使未安装组件也是如此,请尝试从命令行运行此命令:

sc query nettcpactivator

如果服务已停止或不存在,则可能未安装WCF非HTTP激活组件。要安装它们,请运行以下命令:

pkgmgr / iu:WCF-NonHTTP-Activation

来源:http://blogs.msdn.com/b/drnick/archive/2010/05/11/debugging-a-missing-hostedtransportconfiguration-type.aspx

答案 1 :(得分:2)

对于带有Windows Server 2012(可能还有Windows 8)的IIS8,您可以检查此注册表项(适用于.NET 4.5)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\NET-WCF-HTTP-Activation45\InstallState

零表示未安装,1表示已安装。

答案 2 :(得分:2)

您还可以使用PowerShell启用WCF Http / Non-Http Activation组件:

Import-Module ServerManager
Add-WindowsFeature NET-HTTP-Activation,NET-Non-HTTP-Activ

这样您就不必搞砸Windows注册表了。有关使用PowerShell添加Windows功能的详细信息:http://technet.microsoft.com/en-us/library/cc732263.aspx#BKMK_powershell

答案 3 :(得分:1)

您应该使用Get-WindowsFeature powershell命令行开关。您可以通过调用:

来检查Server Framework上是否存在用于HTTP激活的.NET Framework 4.5 WCF服务
$wcfActivationFeature = Get-WindowsFeature -name NET-WCF-HTTP-Activation45
$wcfActivationFeature.Installed

答案 4 :(得分:0)

HTTP激活的注册表项是 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ Windows Communication Foundation \ HTTPActivation,对于非HTTP激活,检查计算机上是否存在服务NetTcpActivation或NetPipeActivator并且正在运行。