287 votes

WCF sur IIS8 ; le mappage de handler *.svc ne fonctionne pas

J'essaie de faire fonctionner un service WCF dans IIS8 sur Windows Server 2012 build 8400.

Lors de l'installation du rôle web, le matériel WCF (sous 3.51) n'a pas été trouvé comme dans Windows Server 2008.

Lors de l'installation, le mappage du svc handler était manquant, j'ai donc fait un :

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i

Maintenant, le mappage du gestionnaire est là, mais j'obtiens toujours :

The resource you are looking for does not have a handler associated with it.

(J'ai supprimé le gestionnaire de fichiers statiques).

Le site utilise le pipeline classique afin d'utiliser l'usurpation d'identité.

583voto

Brian Jimdar Points 1786

Plus précisément :

  1. Exécuter Server Manager (sur la barre des tâches et le menu de démarrage)
  2. Choisir le serveur à administrer (probablement le serveur local)
  3. Faites défiler la page jusqu'à " Roles and Features section ".
  4. Choisir " Add Role or Feature dans le menu déroulant "Tâches
  5. Sur " Add Role or Feature Wizard "cliquez sur le bouton " Features "dans la liste des pages à gauche.
  6. Développez ".Net 3.5" o ".Net 4.5" en fonction de ce que vous avez installé. (vous pouvez remonter jusqu'à " roles " à ajouter si vous n'en avez pas.
  7. Sous " WCF Services "Cochez la case " HTTP-Activation ". Vous pouvez également ajouter des types non-http si vous savez que vous en avez besoin (tcp, named pipes, etc).
  8. Cliquez sur "Install" Bouton.

6 votes

Celle-ci n'a pas fonctionné dans mon cas car je suis sous Windows 8 (avec IIS 8).

9 votes

Si vous avez d'abord exécuté ServiceModelReg.exe -i à partir du répertoire v3.0, vous devez également exécuter ServiceModelReg.exe -ua pour l'annuler avant que cela ne fonctionne.

16 votes

À partir de la ligne de commande : dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation /All

230voto

joshcomley Points 9308

J'ai dû activer HTTP Activation en .NET Framework 4.5 Advanced Services > WCF Services

Enable HTTP Activation

10 votes

Voici ce que vous devez faire pour Windows 8 où il n'y a pas de gestionnaire de serveur

2 votes

C'est la réponse lorsque vous hébergez le service WCF sous Windows 8 et Windows 8.1.

0 votes

L'activation http. Est-elle indépendante du fait que vous utilisiez http / https ? S'agit-il donc d'un nom récapitulatif pour les deux ou faut-il encore faire une distinction à ce niveau ?

47voto

Dino Points 199

Activez les éléments suivants dans la section "Activer ou désactiver les fonctionnalités de Windows".

a) .Net Framework 3.5 - Activation WCF HTTP et Activation Non-Http

b) tous sous WCF Services

1 votes

J'ai seulement eu à activer .Net Framework 3.5 - WCF HTTP Activation

40voto

Simon_Weaver Points 31141

Windows 8 avec IIS8

  • Hit Windows+X
  • Sélectionnez Programs and Features (premier élément de la liste)
  • Sélectionnez Turn Windows Features on or off à gauche
  • Développez .NET Framework 4.5 Advanced Services
  • Développez WCF Services
  • Activer HTTP Activation

0 votes

Un script powershell pour le faire de manière programmatique ?

0 votes

Nous n'avons qu'un seul serveur, donc je n'ai jamais eu à utiliser Powershell de manière avancée.

28voto

Jon Samwell Points 1468

Je préfère aujourd'hui le faire via un script.

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause

2 votes

Merci dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 étaient suffisants pour moi...

0 votes

C'est la meilleure façon de résoudre ce problème sur une nouvelle version 2012R2+ de Windows Server. Cela fonctionne probablement aussi sur la version 2012, mais heureusement, je n'en ai plus pour l'essayer.

0 votes

Et en utilisant PowerShell script ?

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