Comment puis-je faire IIS poignée net.tcp des connexions ?
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é ?
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).
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é ?
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.
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"
La dernière étape a fonctionné pour moi.
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.