65 votes

Activer net.tcp dans IIS7

Comment puis-je faire IIS poignée net.tcp des connexions ?

127voto

Ronald Wildenberg Points 18258

Vous devez ajouter net.tcp aux protocoles activés de votre site. Allez dans IIS Manager, faites un clic droit sur votre site web, allez dans 'Manage Web Site' ou 'Manage Application', puis dans 'Advanced Settings...'. Là, vous voyez "Protocoles activés". Il s'agit probablement de http . Changez-le en http,net.tcp .

Si vous souhaitez configurer les liaisons, cliquez avec le bouton droit de la souris sur votre site Web et sélectionnez "Edit Bindings...". La liaison net.tcp par défaut est 808:* .

Si vous voulez utiliser les services WCF hébergés par IIS derrière net.tcp, vous pouvez également vérifier si vous avez activé les fonctionnalités Windows requises. Allez dans vos fonctionnalités Windows et vérifiez que vous avez activé 'Windows Communication Foundation Non-HTTP Activation' (sous 'Microsoft .NET Framework 3.5.1').

Lorsque vous activez cette fonction, vous obtenez des services Windows supplémentaires. Si cela ne fonctionne toujours pas, vérifiez que le service Windows nommé Adaptateur d'écoute Net.Tcp est en cours d'exécution (il devrait démarrer automatiquement, mais parfois ce n'est pas le cas et c'est le premier endroit que je vérifie lorsqu'une de mes net.tcp les services cessent de fonctionner).

1 votes

Et si je supprime http des protocoles du service dans IIS et que je n'ai que net.tcp, le service sera-t-il activé ?

2 votes

Si vous ne voulez pas de trafic http(s) vers IIS, cela fonctionnera.

0 votes

Je sais que c'est une vieille réponse, mais qu'est-ce que cela signifie si "Protocoles activés" n'apparaît pas comme une option dans le gestionnaire IIS ? J'utilise IIS 7.5 sous Windows 7.

8voto

Gavin Points 177

Cela pourrait aider quelqu'un à l'avenir. J'ai créé un powershell script qui vous sera utile si vous devez automatiser la création des liaisons .

Il vérifiera automatiquement si la liaison existe déjà et ne l'ajoutera que si nécessaire.

Actual 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"

7voto

Ned Points 179

La dernière étape a fonctionné pour moi.

  1. Assurez-vous que ces protocoles sont définis dans les "paramètres avancés" du site web. enter image description here
  2. Assurez-vous que les fonctions ci-dessous sont installées enter image description here
  3. Les services ci-dessous doivent être exécutés enter image description here
  4. Votre pool d'applications doit utiliser le pipeline intégré
  5. Fermez IIS Manager, réinitialisez IIS et ouvrez à nouveau IIS Manager.
  6. Vérifiez la section listenerAdapters dans le fichier applicationHost.config (situé dans le répertoire C:\Windows\System32\inetsrv\config ). Si vous ne voyez pas les adaptateurs d'écouteurs que vous voulez utiliser dans les bindings, ajoutez-les manuellement enter image description here Source : Liaisons manquantes dans IIS (net.tcp, net.pipe, net.msmq, msmq.formatname)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X