Net.tcp inschakelen in IIS7

Hoe kan ik IISnet.tcp-verbindingen laten afhandelen?


Antwoord 1, autoriteit 100%

U moet net.tcptoevoegen aan de ingeschakelde protocollen van uw site. Ga naar IIS Manager, klik met de rechtermuisknop op uw website, ga naar ‘Website beheren’ of ‘Toepassing beheren’ en vervolgens naar ‘Geavanceerde instellingen…’. Daar zie je ‘Enabled Protocols’. Er staat waarschijnlijk http. Verander het in http,net.tcp.

Als u bindingen wilt configureren, klikt u met de rechtermuisknop op uw website en gaat u naar ‘Bewerk bindingen…’. De standaard net.tcp-binding is 808:*.

Als u WCF-services wilt gebruiken die worden gehost door IIS achter net.tcp, kunt u ook controleren of u de vereiste Windows-functies hebt geactiveerd. Ga naar je Windows-functies en controleer of je ‘Windows Communication Foundation Non-HTTP Activation’ hebt geactiveerd (te vinden onder ‘Microsoft .NET Framework 3.5.1’).

Als je deze functie activeert, krijg je wat extra Windows Services. Als het nog steeds niet werkt, controleer dan of de Windows-service met de naam ‘Net.Tcp Listener Adapter’actief is (zou automatisch moeten starten, maar soms niet en dit is de eerste plaats die ik controleer wanneer een van mijn net.tcp-services werkt niet meer).


Antwoord 2, autoriteit 6%

Dit kan iemand in de toekomst misschien helpen. Ik heb een powershell-script gemaakt dat van pas zal komen als je automatiseer het maken van de bindingen.

Het controleert automatisch of de binding al bestaat en voegt deze alleen toe als dat nodig is.

Eigenlijk script

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"

Antwoord 3, autoriteit 3%

De laatste stap werkte voor mij.

  1. Zorg ervoor dat deze protocollen zijn gedefinieerd in de “Geavanceerde instellingen” van de website
    voer hier de afbeeldingsbeschrijving in
  2. Zorg ervoor dat de onderstaande functies zijn geïnstalleerd
    voer hier de afbeeldingsbeschrijving in
  3. De onderstaande services moeten actief zijn
    voer hier de afbeeldingsbeschrijving in
  4. Uw toepassingsgroep moet de geïntegreerde pijplijn gebruiken
  5. Sluit IIS Manager, reset IIS en open IIS Manager opnieuw
  6. Controleer het gedeelte listenerAdapters in het bestand applicationHost.config ( te vinden in C:\Windows\System32\inetsrv\config). Als je de listener-adapters die je in bindingen wilt gebruiken niet ziet, voeg ze dan handmatig toe
    voer hier de afbeeldingsbeschrijving in
    Bron: Ontbrekende bindingen in IIS (net.tcp, net.pipe, net.msmq, msmq.formatname)

Antwoord 4

In mijn geval moest ik het net.tcp-protocol niet alleen aan de website toevoegen, maar ook aan de applicatie eronder (rechtsklik op de applicatie, geavanceerde instellingen, ingeschakelde protocollen).

Other episodes