Iis 7 在IIS7中启用net.tcp

Iis 7 在IIS7中启用net.tcp,iis-7,net.tcp,Iis 7,Net.tcp,如何使IIS处理net.tcp连接?您需要将net.tcp添加到站点的已启用协议中。转到IIS管理器,右键单击您的网站,转到“管理网站”或“管理应用程序”,然后转到“高级设置…”。在这里您可以看到“启用的协议”。它可能会说http。将其更改为http,net.tcp 如果要配置绑定,请右键单击网站并转到“编辑绑定…”。默认的net.tcp绑定是808: 如果要在net.tcp之后使用IIS托管的WCF服务,您可能还需要检查是否已激活所需的Windows功能。转到您的Windows功能,并检查您已

如何使IIS处理net.tcp连接?

您需要将
net.tcp
添加到站点的已启用协议中。转到IIS管理器,右键单击您的网站,转到“管理网站”或“管理应用程序”,然后转到“高级设置…”。在这里您可以看到“启用的协议”。它可能会说
http
。将其更改为
http,net.tcp

如果要配置绑定,请右键单击网站并转到“编辑绑定…”。默认的net.tcp绑定是
808:

如果要在net.tcp之后使用IIS托管的WCF服务,您可能还需要检查是否已激活所需的Windows功能。转到您的Windows功能,并检查您已激活“Windows通信基础非HTTP激活”(在微软.NETFramework 3.5.1)下找到。
激活此功能后,您将获得一些额外的Windows服务。如果它仍然不工作,请检查名为“Net.Tcp侦听器适配器”的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"

最后一步对我有效

  • 确保在网站的“高级设置”中定义了这些协议
  • 确保安装了以下功能
  • 下面的服务应该正在运行
  • 您的应用程序池应该使用集成管道
  • 关闭IIS管理器,重置IIS,然后再次打开IIS管理器
  • 检查applicationHost.config文件(位于C:\Windows\System32\inetsrv\config中)中的listenerAdapters部分。如果看不到要在绑定中使用的侦听器适配器,请手动添加它们 资料来源:

  • 如果我从IIS中服务的协议中删除http,并且只有net.tcp,该怎么办。服务是否将被激活?如果您不希望任何http(s)流量进入IIS,这将起作用。我知道这是一个旧答案,但如果“启用的协议”在IIS管理器中不显示为选项,这意味着什么?我正在Windows 7中使用IIS 7.5。我想您可能是找错了地方,或者您没有足够的权限执行此操作(尽管我从未听说过),或者您可能没有启用所需的Windows功能(也许如果您还没有启用Windows通信基础非HTTP激活,“启用协议”选项是不可见的,尽管这似乎不太可能。我现在遇到的问题是Net。TCP侦听器适配器服务不能完成启动…它只是挂起。添加“Windows通信基础非HTTP激活”修正了这个……不知道为什么,但是谢谢:您必须确保在计算机上安装并启用了.net功能…您能在答案中包含脚本吗?主持人对我来说是不可访问的,如果没有脚本的基本部分,答案是无用的。@Alexei是的,我应该在我的原始答案中包含这一点。希望这有帮助