Как я могу сделать IIS дескриптор net.tcp?
Включение net.tcp в IIS7
Ответ 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
Последний шаг сработал для меня.
- Убедитесь, что эти протоколы определены в "Расширенных настройках" веб-сайта.
- Убедитесь, что нижеуказанные функции установлены
- Службы ниже должны быть запущены
- Ваш пул приложений должен использовать интегрированный конвейер
- Закройте IIS Manager, перезагрузите IIS и снова откройте IIS Manager
- Проверьте раздел listenerAdapters в файле applicationHost.config (находится в C:\Windows\System32\inetsrv\config). Если вы не видите адаптеры прослушивателей, которые хотите использовать в привязках, добавьте их вручную
Источник: Отсутствующие привязки в IIS (net.tcp, net.pipe, net.msmq, msmq.formatname)