Lorsque j'essaie de servir un service WCF sur IIS sur un ordinateur Windows 8, j'obtiens l'erreur bien connue.
La page que vous demandez ne peut pas être servie en raison de la configuration de l'extension. Si la page est un script, ajoutez un gestionnaire. Si le fichier doit être téléchargé, ajoutez une carte MIME.
L'ancien travail consistait à exécuter aspnet_regiis -i
, mais cette commande semble avoir été déconseillée dans Windows 8, ce qui a entraîné une réponse This option is not supported on this version of the operating system. (...)
.
Quel serait le travail autour?
(J'ai déjà activé avec succès les pages aspx
normales, donc la plupart de la configuration IIS semble saine.)
Semblait être une évidence; le service WCF doit être activé à l'aide de Programs and Features -> Turn Windows features on or off
dans le Panneau de configuration. Allez à .NET Framework Advanced Services -> WCF Services
et activez HTTP Activation
comme décrit dans cet article de blog sur mdsn .
A partir de la commande Invite (en tant qu'administrateur), vous pouvez exécuter:
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45
Si vous obtenez une erreur, utilisez ce qui suit.
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45
Pour Windows Server 2012, la solution est très similaire à celle de faester (voir ci-dessus). Dans le Gestionnaire de serveur, cliquez sur Add roles and features
, sélectionnez le serveur approprié, puis sélectionnez Features
. Sous .NET Framework 4.5 Features
, vous verrez WCF Services
, et sous celui-ci, vous trouverez HTTP Activation
.
Veuillez suivre les deux étapes suivantes sur IIS 8.0.
Ajouter un nouveau type MIME & HttpHandler
Extension: .svc, type MIME: application/octet-stream
Chemin de la demande: * .svc, Type: System.ServiceModel.Activation.HttpHandler, Nom: svc-Integrated
C'est vraiment la même solution que celle de Faester et celle de Bill Moon, mais voici comment procéder avec PowerShell:
Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation
Bien entendu, rien ne vous empêche d'appeler DISM
depuis PowerShell.