[〜#〜] iis [〜#〜]処理net.tcp接続を作成するにはどうすればよいですか?
サイトの有効なプロトコルに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
サービスの機能が停止します)。
これは将来誰かを助けるかもしれません。 バインディングの作成を自動化する が必要な場合に役立つ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"
最後のステップはうまくいきました。