Как программно проверить компоненты активации WCF Http/Non-Http?

Мне нужно определить, установлены ли компоненты активации WCF Http/Non-Http во время установки моего продукта. Как я могу это сделать?

спасибо.

5 ответов


для IIS7, проверьте следующий раздел реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp\Components\

для следующих компонентов:

  • Модель Процесса-ProcessModel
  • .NET Environment-NetFxEnvironment
  • API Конфигурации-WASConfigurationAPI

с этой страницы: http://learn.iis.net/page.aspx/135/discover-installed-components/

обновление: так это верно даже тогда, когда компоненты не установлены, попробуйте запустить эту команду из командной строки:

sc запрос nettcpactivator

Если служба остановлена или не существует, компоненты активации WCF, отличные от HTTP, скорее всего, не установлены. Чтобы установить их, выполните следующую команду:

диспетчер пакетов pkgmgr /МЕ: WCF-NonHTTP-активация

источник: http://blogs.msdn.com/b/drnick/archive/2010/05/11/debugging-a-missing-hostedtransportconfiguration-type.aspx


для IIS8 с Windows Server 2012 (и, вероятно, Windows 8), вы можете проверить этот раздел реестра (для .NET 4.5)

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

ноль означает не установлен, и 1 означает установлен.


вы также можете использовать PowerShell для включения компонентов активации WCF Http/Non-Http:

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

таким образом, вам не придется возиться с реестром Windows. Дополнительные сведения о добавлении функции Windows с помощью PowerShell:http://technet.microsoft.com/en-us/library/cc732263.aspx#BKMK_powershell


вероятно, вам следует использовать командлет Get-WindowsFeature powershell. Проверить наличие на сервере 2012 служб WCF .NET Framework 4.5 для активации HTTP можно по телефону:

$wcfActivationFeature = Get-WindowsFeature -name NET-WCF-HTTP-Activation45
$wcfActivationFeature.Installed

раздел реестра для активации HTTP HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Communication Foundation\HTTPActivation и для активации без HTTP проверяет, существует ли служба NetTcpActivation или NetPipeActivator на компьютере и выполняется.