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

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

60 голосов
/ 06 июля 2010

Как я могу IIS обрабатывать net.tcp соединений?

Ответы [ 2 ]

118 голосов
/ 06 июля 2010

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

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

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

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

7 голосов
/ 22 сентября 2015

Это может помочь кому-то в будущем.Я создал скрипт 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"
...