Je développe une application basée sur .Net Framework 3.5 sp1 et hébergée sur Windows Server 2008 (64 bits).
Lorsque vous parcourez le service wcf (.svc) localement, tout est ok, mais lors de la navigation avec l'URL du domaine complet, une erreur s'est produite.
adresse locale est comme ceci: http: //localhost/MyService.svc
et l'adresse de domaine est comme ceci: http://MySite.ir/MyService.svc
en passant, les pages (.aspx) et autres fichiers fonctionnent correctement à la fois sur localhost et avec une adresse de domaine.
n'importe quelle idée est la bienvenue
Voici l'erreur détaillée:
Erreur HTTP 404.3 - Introuvable
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 . Informations détaillées sur les erreurs
Module: StaticFileModule
Notification: ExecuteRequestHandler
Gestionnaire: StaticFile
Code d'erreur: 0x80070032
URL demandée: http://MySite.ir:80/MyService.svc
Chemin physique: D:\inetpub\vhosts\MySite.ir\httpdocs\MyService.svc
Méthode de connexion: Anonymous
Ouverture de session anonyme
OK, voici la réponse:
Aller à Mappages de gestionnaires | Ajouter gestionnaire de gestionnaire -> Et puis ajoutez les informations ci-dessous
Chemin de la demande: * .svc
Type: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, version = 3.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089
Nom: svc-Integrated
Assurez-vous d'avoir activé les composants WCF à partir de ici .
Vous pouvez également utiliser le panneau de configuration -> Activer ou désactiver Windows -> et vous assurer que toutes les options sont cochées comme indiqué dans la capture d'écran ci-dessous.
Vous devrez peut-être activer chaque case et accepter si des erreurs surviennent lors de l'activation simultanée de toutes les fonctions
Si quelqu'un a ce problème sur Windows Server 2012, la réponse de Bill Moon ici l'a résolu pour moi:
"Pour Windows Server 2012 ... Dans le Gestionnaire de serveur, cliquez sur Ajouter des rôles et des fonctionnalités, sélectionnez le serveur approprié, puis sélectionnez Fonctionnalités. Sous Fonctionnalités .NET Framework 4.5, vous verrez les services WCF. trouver l'activation HTTP ".
J'ai Windows 10 sur mon ordinateur portable et j'utilise Visual Studio 2015 pour le développement de WCF. WCF fonctionne correctement dans Visual Studio, mais lorsqu’il est hébergé dans IIS, j’ai la même erreur.
J'ai vérifié le gestionnaire IIS. L'extension svc était manquante. J'ai donc essayé d'ajouter un nouveau gestionnaire dans IIS comme suggéré par Mori dans sa première réponse. Je n'ai pas trouvé le type "System.ServiceModel.Activation.HttpHandler".
Alors j'ai ouvert "Activer ou désactiver les fonctionnalités de Windows" et les fonctionnalités installées comme indiqué dans la capture d'écran.
Cela a fonctionné pour moi.
Je voulais ajouter ceci comme commentaire à la réponse, mais je n’avais pas assez de représentants pour le faire. J'ai essayé d'exécuter ServiceModelReg et aspnet_regiis.exe avec divers indicateurs et ajouté la fonctionnalité d'activation HTTP, mais cela ne fonctionnait toujours pas. Même l'utilisation de l'interface utilisateur de mappage du gestionnaire dans IIS ne fonctionnait pas car elle ne trouvait pas System.ServiceModel.Activation.HttpHandler. Ce qui a finalement fonctionné a été d’ajouter manuellement le gestionnaire Mori à mon fichier web.config.
<system.webServer>
<handlers>
<add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />
Mon projet exécutait .Net 3.5 et IIS 7.5 sur Windows 7 et IIS 7.0 sur Win Server 2008 R2.
Essayez de décocher les activations HTTP WCF de la fenêtre "Activer ou désactiver les fenêtres en vedette" ( Voir ici ) et de les réinstaller en allant à
%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
et exécutez ServiceModelReg -i
Si vous utilisez .Net 4.x, PublicKeyToken est 31bf3856ad364e35.
Cependant, après cet article concernant l'installation correcte des services WCF dans IIS, le gestionnaire a été configuré pour moi.