web-dev-qa-db-fra.com

WCF sur IIS8; Le mappage des gestionnaires * .svc ne fonctionne pas

J'essaie de faire fonctionner un service wcf dans IIS8 sur la version 8400 de 2012.

Lors de l’installation du rôle Web, le fichier wcf (sous la version 3.51) n’a pas été trouvé comme en 2008.

Une fois installé, le mappage svc handler était manquant, j'ai donc fait un:

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

Maintenant, le mappage de gestionnaire est là, mais je reçois 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'emprunt d'identité.

262
Carl R

Plus précisement:

  1. Exécutez Server Manager (dans la barre des tâches et dans le menu Démarrer)
  2. Choisissez le serveur à administrer (probablement un serveur local)
  3. Faites défiler jusqu'à la section "Roles and Features".
  4. Choisissez "Add Role or Feature" dans le menu déroulant Tâches
  5. Dans la boîte de dialogue "Add Role or Feature Wizard", cliquez sur "Features" dans la liste des pages à gauche.
  6. Développez ".Net 3.5" ou ".Net 4.5", en fonction de ce que vous avez installé. (vous pouvez revenir à l'écran "roles" pour l'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, canaux nommés, etc.).
  8. Cliquez sur le bouton "Install".
532
Brian Jimdar

Je devais activer HTTP Activation dans .NET Framework 4.5 Advanced Services> WCF Services

Enable HTTP Activation

210
joshcomley

activez ce qui suit sur "Activer ou désactiver les fonctionnalités Windows".

a) .Net Framework 3.5 - Activation HTTP WCF et activation non HTTP

b) tous dans les services de la WCF

43
Dino

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
38
Simon_Weaver

Je préfère le faire via un script de nos jours

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
28
Jon

Nous avons réussi à résoudre l'erreur sous Windows Server 2012 en:

  1. Suppression de "Assistant de suppression de rôles et de fonctionnalités". Fonctionnalités .NET Framework 4.5/ASP.NET 4.5 et toutes ses fonctionnalités dépendantes
  2. Réinstallation des fonctionnalités supprimées.

Il semble que l'ordre d'installation soit la cause.

Assurez-vous également que l'activation HTTP est installée sous Services WCF.

10
Radu Damian

Pour les ordinateurs Windows 8, il n’existe pas d’application "Gestionnaire de serveur" (du moins, je n’ai pas pu la trouver).

Bien que j'ai pu résoudre le problème. Je ne sais pas dans quel ordre j'ai effectué les opérations suivantes, mais une des actions suivantes peut vous aider:

  1. Activez ce qui suit sur "Activer ou désactiver les fonctionnalités Windows" a) .Net Framework 3.5 - Activation HTTP WCF et activation non-Http b) le tout sous Services WCF (comme indiqué dans l'une des réponses à cette question)

  2. exécuté "ServiceModelReg.exe –i" dans le dossier "% windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation \"

  3. ASP.NET 2.0 enregistré via deux commandes (dans le dossier C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY\NETWORK SERVICE" aspnet_regiis -iru

  4. PC redémarré ... il en résulte que les actions ## 3 et 4 ont été endommagées dans ma configuration ASP.NET

  5. Répétez l'action n ° 2

  6. Installez deux autres options à partir de "Programmes et fonctionnalités": Services avancés .Net Framework 4.5. J'ai vérifié les deux sous-options: services ASP.NET 4.5 et WCF

  7. Redémarrez le pool d'applications.

La séquence est un peu folle, mais cela m’a aidé et aidera probablement d’autres

3
Budda

L'ordre d'installation est très important lors de la configuration de IIS 8 sous Windows 8 ou Windows Server 2012.

J'ai eu beaucoup de problèmes à configurer IIS 8 mais finalement, ces liens m'ont aidé

2
Sunil Agarwal

à l'aide de PowerShell, vous pouvez installer la fonctionnalité requise avec:

Add-WindowsFeature 'NET-HTTP-Activation'
2
Owais F

Sur Windows 10 (client), vous pouvez également créer un script pour cela en utilisant

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Notez qu'il s'agit d'une commande différente de celle du serveur.

1
aL3891

Sa fonctionnalité d'activation HTTP du framework .NET La fonctionnalité d'activation de processus Windows est également requise

0
Max

C'était vraiment stupide pour moi. En ajoutant ceci ici car c'est l'un des sujets les plus populaires sur les problèmes svc 404.

J'avais dans l'URL de mon projet Paramètres\Web\Project, collé:

http://blah.webservice.local.blahblah.com/Blah.svc

Et pour une raison inconnue (après l'avoir fait mille fois), nous n'avons pas tout de suite remarqué que le nom du fichier .svc se trouvait à la fin.

DOH!

Je venais de coller l'adresse de mon client de test WCF et je ne l'avais pas vérifiée suffisamment. En arrière-plan, cela créait une application IIS à l'adresse .svc et je ne tirais aucun avantage d'IIS. Je ne pouvais pas comprendre comment je ne pouvais même pas frapper le fichier .svc.

Une solution simple, évidemment, il suffit de supprimer l’application dans IIS et de modifier l’URL du projet.

Après presque 20 ans de cela, vous pouvez toujours faire des erreurs d'écolier/erreurs de recrue. J'espère que ça aide quelqu'un.

0