206 votes

Impossible de servir les services WCF dans IIS sous Windows 8

Quand j'essaie de servir un service WCF sur IIS dans une machine Windows 8, je reçois 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'ancienne solution consistait à exécuter aspnet_regiis -i mais cette commande semble avoir été dépréciée dans Windows 8, ce qui donne la réponse suivante This option is not supported on this version of the operating system. (...) .

Quelle serait la solution ?

(J'ai réussi à activer la fonction régulière aspx déjà, donc la plupart de la configuration IIS semble saine).

0 votes

Pour plus d'informations sur le aspnet_regiis -i pour les utilisateurs d'avant Windows 8, voir ce lien : aspsnippets.com/Articles/

0 votes

428voto

faester Points 6055

Semblait être un no brainer ; le service de WCF devrait être activé utilisant Programs and Features -> Turn Windows features on or off dans le panneau de configuration. Allez à .NET Framework Advanced Services -> WCF Services et permettre HTTP Activation comme décrit dans cet article de blog sur mdsn .

À partir de l'invite de commande (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 la procédure suivante

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

6 votes

J'ai passé du temps à chercher dans IIS Manager. Je pense que IIS Manager devrait avoir une icône dirigeant ou indiquant à l'utilisateur les services avancés de .NET Framework.

0 votes

En utilisant l'invite de commande, j'ai obtenu l'erreur "L'opération est complète mais la fonction WCF-HTTP-Activation n'a pas été activée. Une fonctionnalité parent requise peut ne pas être activée. Vous pouvez utiliser l'option /enable-feature /all pour activer automatiquement chaque fonctionnalité parent de la liste suivante. Si la (les) fonction(s) parente(s) est (sont) déjà activée(s), reportez-vous au fichier journal pour un diagnostic plus approfondi". J'ai utilisé la méthode GUI à la place afin de savoir ce que j'activais et cela a fonctionné.

5 votes

J'ai obtenu la même erreur "A required parent feature may not be enabled" que Ben Anderson, et j'ai essayé la suggestion dans le message d'erreur (en ajoutant l'élément /all ), qui a ensuite fonctionné correctement : DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45 .

100voto

Bill Moon Points 548

Pour Windows Server 2012, la solution est très similaire à celle de Fester (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 en dessous, vous trouverez HTTP Activation .

0 votes

Merci pour cela ! mais qu'en est-il de .Net 4 ? Vous pensez que l'activation de cette fonctionnalité fera la même chose pour .Net v4.0 ?

2 votes

Dans toute application web existante, vous devrez également effectuer les opérations suivantes après avoir ajouté la fonctionnalité Windows : - Démarrez inetmgr - Ouvrez "Handler mappings" - Vérifiez si les mappages svc-ISAPI pour l'extension *.svc sont présents. Si ce n'est pas le cas, utilisez l'action "Revert To Parent" pour les copier depuis le site parent. Notez que cela suppose que les mappages de gestionnaires personnalisés sont configurés dans web.config pour l'application, comme c'est généralement le cas dans IIS7+. Si ce n'est pas le cas, vous les perdrez lors de l'exécution de l'action "Revert To Parent".

16voto

Vous pouvez également y parvenir en activant la fonction Windows. enter image description here enter image description here

13voto

Veuillez effectuer les deux étapes suivantes sur IIS 8.0

Ajouter un nouveau type MIME & HttpHandler

  1. Extension : .svc, Type MIME : application/octet-stream

  2. Chemin de requête : *.svc, Type : System.ServiceModel.Activation.HttpHandler, Nom : svc-Intégré

0 votes

La meilleure solution pour ma très vieille installation de Windows 7 qui ne parvient pas à activer - .Net 3.5 (Activation Http & Non-Http) et WAS. Trop délicat de réinstaller l'OS

0 votes

Il est utile de connaître cette méthode, notamment pour créer et ajouter vos propres gestionnaires. Cependant, si vous utilisez l'option "activer et désactiver les fonctions de Windows", vous obtiendrez la plupart des extensions de fichiers connues, ce qui vous évitera d'avoir à les ajouter individuellement (et à trouver tous les détails corrects).

4voto

JamesQMurphy Points 2820

Il s'agit en fait de la même solution que celle de Faester et de Bill Moon, mais voici comment la réaliser avec PowerShell :

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

Bien sûr, rien ne vous empêche d'appeler DISM à partir de PowerShell non plus.

0 votes

Très bien. Merci pour l'information.

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