J'ai récemment créé un service WCF qui fonctionne correctement lorsque testé à partir de Visual Studio 2008. Mais lorsque je déploie le projet sur IIS et que j'essaie d'accéder au fichier .svc à partir d'IIS, le message d'erreur suivant s'affiche:
"Server Error in '/' Application.The resource cannot be found. "
Je rencontre ce problème depuis 4 jours.
dans les mappages de gestionnaires de IIS Manager, je peux voir deux entrées pour .svc:
svc-Integrated and svc-ISAPI-2.0
Vous devez ajouter un mappage pour l'extension SVC à ASP.NET. La méthode la plus simple consiste à exécuter ServiceModelReg.exe -i
à partir de C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation. Vous devrez peut-être également activer ASP.NET si vous ne l'avez pas déjà fait.
Si vous utilisez Windows Server 2012 ou 2016, suivez plutôt les instructions suivantes:
J'ai trouvé ces instructions sur un article de blog qui indiquaient cette étape, qui a fonctionné pour moi (Windows 8, 64 bits):
Assurez-vous que dans les fonctionnalités Windows, vous avez coché les deux options WCF sous .Net Framework. Allez dans Panneau de configuration -> Programmes et fonctionnalités -> Activer/désactiver les fonctionnalités Windows -> Fonctions -> Ajouter des fonctionnalités -> Fonctionnalités .NET Framework X.X. Assurez-vous que .Net Framework indique qu'il est installé et assurez-vous que le nœud d'activation WCF situé en dessous est sélectionné (case à cocher cochée) et que les deux options sous Activation WCF sont également cochées.Ce sont: * Activation HTTP * Activation non HTTP Les deux options doivent être sélectionnées (case cochée).
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 demandes avant qu'elles n'atteignent le gestionnaire SVC.
Pour vérifier cela - dans Mappages de gestionnaires dans IIS Gestionnaire au niveau du serveur Web, affichez la liste des gestionnaires dans l’ordre (c’est une option à droite). Si les différents gestionnaires ExtensionlessUrl apparaissent au-dessus des gestionnaires SVC, déplacez-les plusieurs fois vers le bas jusqu'à ce qu'ils se trouvent en bas.
Vérifie que votre répertoire a été converti en une application correspondant à votre IIS.
J'ai eu le même problème aujourd'hui.
Pour moi, la solution consistait à accéder à IIS, à cliquer avec le bouton droit de la souris sur le nouveau nom du site Web, à sélectionner Propriétés, ASP.Net, puis à modifier la version ASP.Net de "1.1.4322" (définie par défaut). à 2.0.50727.
Cela fait, je pourrais cliquer avec le bouton droit de la souris sur le fichier .svc, cliquer sur "Parcourir" et voir la page Web de service conviviale.
Cela peut également devenir un problème après l'activation de IIS 6 Compatibilité de gestion dans Windows 10. La définition de l'activation HTTP du cadre dans Services WCF résoudra le problème.
Dans mon cas Win 10. le fichier applicationHost.config est corrompu par VS 2012. Et vous pouvez obtenir la copie de l'historique de ce fichier sous C:\inetpub\history. Puis redémarrez IIS et cela fonctionnera correctement.
Il y a 2 versions du framework .net qui sont données sous les fonctionnalités de la fonction addition role/features in server 2012
une. 3,5
b. 4,5
En fonction de la structure utilisée, vous pouvez activer Activation HTTP sous les services WCF. :)
Dans mon cas, l'erreur était due à des paramètres de mappage incorrects dans le fichier applicationhost.config (\ System32\inetsrv\config). Pour une raison quelconque, Visual Studio 2013 l'a corrompu lors de la création d'un répertoire virtuel dans IIS. Le correctif consistait à modifier manuellement la section sites du fichier.