100 votes

HTTP 404 lors de l'accès au fichier .svc dans IIS

J'ai récemment créé un service WCF qui fonctionne bien lorsqu'il est testé depuis Visual Studio 2008. mais lorsque je déploie le projet sur IIS et que j'essaie d'accéder au fichier .svc depuis IIS, j'obtiens cette erreur :

"Erreur de serveur dans l'application '/' La ressource demandée est introuvable. "

Je rencontre ce problème depuis 4 jours.

Dans les mappings de gestionnaires de IIS Manager, je peux voir deux entrées pour .svc :

svc-Integrated et svc-ISAPI-2.0

154voto

Stefan Michev Points 131

Ce qui a fonctionné pour moi, Sur Windows Server 2012 R2 :

WCF HTTP 404

Merci à "Aaron D"

0 votes

Cela a fonctionné pour moi sur les ordinateurs de bureau Win10, Win8.1 et le serveur Win2012 :) Merci!

0 votes

Cela a fonctionné pour moi sur les ordinateurs de bureau Win10, Win8.1 et le serveur Win2012 :) Merci!

6 votes

Pour une raison quelconque, j'ai dû installer la fonctionnalité pour 3.5 ainsi que pour 4.5, et via la ligne de commande : dism /online /enable-feature /featurename:WCF-http-Activation45 /all et aussi dism /online /enable-feature /featurename:WCF-http-Activation /all

78voto

tvanfosson Points 268301

Vous devez ajouter une correspondance pour l'extension SVC à ASP.NET. La manière la plus simple de le faire est d'exécuter ServiceModelReg.exe -i depuis C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation. Vous devrez peut-être également activer ASP.NET si vous ne l'avez pas encore fait.


Si vous utilisez Windows Server 2012 ou 2016, suivez ces instructions à la place:

0 votes

Avez-vous essayé de redémarrer IIS par la suite ?

0 votes

Avez-vous maintenant un mappage de type MIME pour .svc ?

0 votes

Ce n'est pas une mise en correspondance de type MIME- Application Extension Mapping. voir msdn.microsoft.com/en-us/library/ms752252(v=vs.90).aspx.

60voto

Aaron D Points 2585

J'ai trouvé ces instructions sur un article de blog qui indiquait cette étape, qui a fonctionné pour moi (Windows 8, 64 bits) :

Assurez-vous que dans les fonctionnalités de Windows, vous avez coché les deux options WCF sous le framework .Net. Allez donc dans Panneau de configuration –> Programmes et fonctionnalités –> Activer ou désactiver des fonctionnalités Windows –> Fonctionnalités –> Ajouter des fonctionnalités –> Fonctionnalités du framework .NET X.X. Assurez-vous que le framework .Net indique qu'il est installé, et assurez-vous que le nœud d'activation WCF en dessous est sélectionné (case à cocher cochée) et que les deux options sous l'activation WCF sont également cochées. Il s'agit de : * Activation HTTP * Activation non-HTTP Les deux options doivent être sélectionnées (case cochée).

3 votes

Si je pouvais voter pour cela plus d'une fois, je le ferais, cela me rendait FOU, merci!

6voto

Inigo Surguy Points 21

Je vois que vous avez déjà résolu votre problème - mais pour la postérité :

Nous avons eu un problème similaire, et le gestionnaire SVC était déjà correctement installé. Notre problème était que le gestionnaire ExtensionlessUrl traitait les requêtes avant qu'elles n'atteignent le gestionnaire SVC.

Pour vérifier cela - dans Gestionnaire des gestionnaires dans le Gestionnaire IIS au niveau du serveur web, consultez la liste des gestionnaires dans l'ordre (c'est une option sur le côté droit). Si les différents gestionnaires ExtensionlessUrl apparaissent au-dessus des gestionnaires SVC, déplacez-les plusieurs fois vers le bas jusqu'à ce qu'ils soient en bas.

3voto

Smyrnian Points 90

Aucune des solutions ci-dessus n'a résolu cette erreur pour moi. J'ai dû définir ce qui suit dans web.config:

system.servicemodel > bindings > webHttpBinding > binding:

J'aimerais profiter de cette occasion pour MAUDIRE une fois de plus Microsoft d'avoir créé un tel gâchis avec le framework .NET et d'avoir rendu la vie des développeurs si misérable pendant si longtemps!

0 votes

Je lèverai mon verre à cela ! La solution de Microsoft au problème de configuration WCF était de supprimer le produit dans .NET Core.

0 votes

Je suis depuis passé à Go et je n'y reviendrai jamais. Si vous avez déjà travaillé avec du classique ASP, c’était simple et ça fonctionnait sans accroc ni attente du .NET JIT pour la compilation différée des pages web. Go est aussi super rapide! On se croirait simplement en train de faire tourner un site web statique.

0 votes

Que dire de Rust? J'ai entendu de bonnes choses, mais aussi des choses horribles comme le gonflement du code et une sécurité factice.

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