web-dev-qa-db-fra.com

Erreur HTTP 404.3 - Introuvable "lors de la navigation dans le service wcf sous Windows Server 2008 (64 bits)

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

63
Mori

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

24
Mori

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.

enter image description here

Vous devrez peut-être activer chaque case et accepter si des erreurs surviennent lors de l'activation simultanée de toutes les fonctions 

173
Nirav Mehta

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 ".

9
Will

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.

 enter image description here

5
Anil

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.

0
Janspeed

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

0
Derviş Özçelik

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.

0
Thomas Hagström