Подтвердить что ты не робот

Включение net.tcp в IIS7

Как я могу сделать IIS дескриптор net.tcp?

4b9b3361

Ответ 1

Вам нужно добавить net.tcp к включенным протоколам вашего сайта. Перейдите в диспетчер IIS, щелкните правой кнопкой мыши на своем веб-сайте, перейдите в раздел "Управление веб-сайтом" или "Управление приложением", а затем "Расширенные настройки...". Там вы видите "Enabled Protocols". Вероятно, это говорит http. Измените его на http,net.tcp.

Если вы хотите настроить привязки, щелкните правой кнопкой мыши на своем веб-сайте и перейдите к "Редактировать привязки...". По умолчанию привязка net.tcp 808:*.

Если вы хотите использовать службы WCF, размещенные в IIS за net.tcp, вы также можете проверить, активировали ли вы необходимые функции Windows. Перейдите к своим функциям Windows и проверьте, что вы активировали "Активацию Windows без поддержки HTTP" (см. Раздел "Microsoft.NET Framework 3.5.1" ).

При активации этой функции вы получите дополнительные службы Windows. Если он по-прежнему не работает, проверьте, работает ли служба Windows с именем 'Net.Tcp Listener Adapter' (должен запускаться автоматически, но иногда это не так, и это первое, что я проверяю, когда один из моих служб net.tcp перестает работать).

Ответ 2

Это может помочь кому-то в будущем. Я создал скрипт powershell, который пригодится, если вам понадобится автоматизировать создание привязок.

Он автоматически проверит наличие привязки и добавит ее только при необходимости.

Актуальный скрипт

Import-Module WebAdministration

$websites = Get-ChildItem 'IIS:\Sites'
$site = $websites | Where-object { $_.Name -eq 'Default Web Site' }
$netTcpExists = [bool]($site.bindings.Collection | ? { $_.bindingInformation -eq '808:*' -and $_.protocol -eq 'net.tcp' })

if (!$netTcpExists)
{
    Write-Output "Net TCP binding does not exist. Creating binding now..."
    # Create the binding
    New-ItemProperty 'IIS:\Sites\Default Web Site' -name bindings -Value @{protocol="net.tcp";bindingInformation="808:*"}

    Write-Output "Binding created"
}
else
{
    Write-Output "TCP Binding already exists"
}

Write-Output "Updating enabled protocols..."

Set-ItemProperty 'IIS:\sites\Default Web Site' -name EnabledProtocols -Value "http,net.tcp"

Write-Output "Enabled protocols updated"

Ответ 3

Последний шаг сработал для меня.

  1. Убедитесь, что эти протоколы определены в "Расширенных настройках" веб-сайта. enter image description here
  2. Убедитесь, что нижеуказанные функции установлены enter image description here
  3. Службы ниже должны быть запущены enter image description here
  4. Ваш пул приложений должен использовать интегрированный конвейер
  5. Закройте IIS Manager, перезагрузите IIS и снова откройте IIS Manager
  6. Проверьте раздел listenerAdapters в файле applicationHost.config (находится в C:\Windows\System32\inetsrv\config). Если вы не видите адаптеры прослушивателей, которые хотите использовать в привязках, добавьте их вручную enter image description here Источник: Отсутствующие привязки в IIS (net.tcp, net.pipe, net.msmq, msmq.formatname)