web-dev-qa-db-ja.com

IIS7でnet.tcpを有効にする

[〜#〜] iis [〜#〜]処理net.tcp接続を作成するにはどうすればよいですか?

60
Jayesh

サイトの有効なプロトコルにnet.tcpを追加する必要があります。 IIS Managerに移動し、Webサイトを右クリックして、[Webサイトの管理]または​​[アプリケーションの管理]に移動し、[詳細設定...]に移動します。そこに「有効なプロトコル」が表示されます。おそらくhttpと表示されます。 http,net.tcpに変更します。

バインディングを構成する場合は、Webサイトを右クリックして、「バインディングの編集...」に進みます。デフォルトのnet.tcpバインディングは808:*です。

Net.tcpの背後にあるIISでホストされているWCFサービスを使用する場合は、必要なWindows機能をアクティブにしたかどうかを確認することもできます。 Windowsの機能に移動して、「Windows Communication Foundation Non-HTTP Activation」(「Microsoft .NET Framework 3.5.1」の下にある)がアクティブになっていることを確認します。

この機能を有効にすると、追加のWindowsサービスが提供されます。それでも動作しない場合は、'Net.Tcp Listener Adapter'という名前のWindowsサービスが実行されていることを確認します(自動的に開始する必要がありますが、場合によっては機能しません。 net.tcpサービスの機能が停止します)。

119

これは将来誰かを助けるかもしれません。 バインディングの作成を自動化する が必要な場合に役立つ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"
7
Gavin

最後のステップはうまくいきました。

  1. これらのプロトコルがウェブサイトの「詳細設定」で定義されていることを確認してください enter image description here
  2. 以下の機能がインストールされていることを確認してください enter image description here
  3. 以下のサービスが実行されている必要があります enter image description here
  4. アプリケーションプールは統合パイプラインを使用する必要があります
  5. 閉じるIIS Manager、IISをリセットし、開くIIS Manager
  6. ApplicationHost.configファイル(C:\ Windows\System32\inetsrv\configにあります)のlistenerAdaptersセクションを確認します。バインディングで使用したいリスナーアダプターが表示されない場合は、手動で追加してください enter image description here ソース: IIS(net.tcp、net.pipe、net.msmq、msmq.formatname)のバインディングがありません)
1
Ned