Problème simple. Je démarre VS2008 et crée une nouvelle application de service WCF. Cela créera une application par défaut avec quelques méthodes de test montrant que cela fonctionne. J'appuie sur CTRL + F5 et ça marche bien! Génial! Cependant, il utilise le serveur de développement Visual Studio, que je ne veux pas prendre en charge.
Je vais donc dans les propriétés du projet, je passe à l'utilisation d'un serveur local IIS Web, je crée le répertoire virtuel et j'appuie à nouveau sur CTRL + F5. Et cette erreur "Erreur HTTP 404.3 - Introuvable" salue Je reviens.
Donc, quelque chose dans ma configuration IIS7/Vista-64 est incorrect. Que pourrais-je manquer?
Cliquez sur Démarrer -> Exécuter cmd
et tapez:
cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
Si vous avez rencontré ce problème pour la première fois. avec Windows 8 et IIS 8.0 assurez-vous d'activer Windows Communication Foundation HTTP Windows).
Le problème, cependant, est alors de réenregistrer ASP.Net sur IIS, ce qui est expliqué ci-dessous.
Et aussi si vous êtes sur une machine 64 bits, utilisez toujours les chemins Framework64: C:\Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis.exe -iru
Voici l'explication de Microsoft:
http://download.Microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/ReleaseNotes.docx
Lorsque vous tentez d'exécuter un service qui reçoit des messages via le transport HTTP, vous pouvez recevoir une erreur similaire à la suivante:
Erreur de serveur dans l'application '/ WCFApplication'
Impossible de charger le type "System.ServiceModel.Activation.HttpModule" à partir de l'assembly "System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089".
Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Consultez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. Détails de l'exception: System.TypeLoadException: impossible de charger le type 'System.ServiceModel.Activation.HttpModule' de l'assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'.
Cette erreur peut se produire lorsque IIS est installé après l'installation de .NET Framework 4 ou si la version 3.0 du module d'activation Http WCF est installée après l'installation de IIS et .NET Framework 4.
Pour résoudre ce problème, vous devez utiliser ASP.NET IIS Registration Tool (Aspnet_regiis.exe,) pour enregistrer la version correcte d'ASP.NET. Cela peut être accompli en utilisant les paramètres –iru lors de l'exécution de aspnet_regiis.exe comme suit:
aspnet_regiis.exe -iru
Et le crédit, c'est dû: Source
J'ai dû cocher "Activation HTTP" dans "Ajouter des services de rôle" dans Windows Server 2012.
essayez d'installer IIS en développant votre service d'informations Internet, puis vérifiez ASP.Net 3.5 ou ASP.Net 4.5 et ISAPI .... à la racine du monde entier ........ veuillez regarder l'image pour plus d'aide
J'ai essayé d'exécuter ServiceModelReg et aspnet_regiis.exe avec divers indicateurs et j'ai ajouté la fonction d'activation HTTP, mais cela n'a toujours pas fonctionné. Ce qui a finalement fonctionné a été d'ajouter manuellement le gestionnaire suivant à 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 était 7.5 et 7.0.