web-dev-qa-db-fra.com

(405) Méthode non autorisée. WCF WebService

Introduction:

Bonjour, j'essaie de configurer un service Web WCF sur mon serveur local IIS 7.5, mais après avoir terminé les configurations de base, je ne peux pas envoyer de données avec un client de test WinForms et il renvoie le erreur mentionnée dans les titres. J'ai déjà cherché des sujets similaires sur ce problème mais je n'ai rien trouvé qui puisse convenir à mon problème.

Les données:

-Le Wcf WebService et le client de test sont fournis par un tiers

-Ils fonctionnent déjà sur un autre serveur et j'utilise les mêmes versions

-Je fais probablement quelque chose de mal quand j'active ou configure IIS

Demande:

-J'ai besoin de savoir quelles fonctionnalités IIS je dois activer/désactiver pour l'installer correctement afin de pouvoir utiliser le Webservice Wcf. (Si tel est le cas).

-Comment configurer correctement le serveur afin de résoudre l'erreur mentionnée ci-dessus.

Mes configurations:

-Après l'installation de IIS j'ai changé le DefaulAppPool en .NET Framework v4.0.30.319; mode pipeline: intégré. -Paramètres avancés: Charger le profil utilisateur = Faux.

-Créé un nouveau site Web nommé "WcfMicrocontrollerService" en utilisant DefaultAppPool.Binding; Type: http, adresse IP:, port: 80

À ce stade, je peux y accéder via un navigateur Web, mais lorsque j'utilise le client de test pour POST données au service, j'obtiens l'erreur suivante: " Le serveur distant a renvoyé une réponse inattendue: (405) Méthode non autorisée. "

Voici les paquets de données envoyés tels qu'enregistrés par Fiddler: Envoyés:

POST http://192.168.0.102/MicroControllerComSvc.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/IMicroControllerComSvc/GetMicrocontrollerData"
Host: 192.168.0.102
Content-Length: 237
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetMicrocontrollerData xmlns="http://tempuri.org/"><microControllerData>1,1,1,1,2,2,1,0,100,300</microControllerData></GetMicrocontrollerData></s:Body></s:Envelope>

Reçu:

HTTP/1.1 405 Method Not Allowed
Cache-Control: private
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 01 Mar 2016 10:44:44 GMT
Content-Length: 5671

Et voici le corps: https://dl.dropboxusercontent.com/u/2237590/405.html

Cela semble indiquer que je devrais jeter un œil aux mappages de gestionnaires, mais je n'ai aucune idée de ce que je dois y éditer.

17
Grossu Iulian

Ok donc après une très brève recherche sur votre problème, j'ai trouvé la question suivante WCF sur IIS8; * le mappage du gestionnaire * .svc ne fonctionne pas

Ignorant le fait que la question concerne IIS 8, exécutez-vous Windows ou Windows Server?

Si vous utilisez Windows, accédez à ...

  • Panneau de configuration -> Programmes -> Programmes et fonctionnalités> Activer ou désactiver les fonctionnalités Windows. Sous la section ".Net Framework 3.5 (Invlucdes .NET 2.0 et 3.0")
  • assurez-vous que "Activation HTTP de Windows Communication Foundation" est activé.
  • Vérifiez également sous ".NET Framerwork 4.x Advanced Services" et sous "WCF Services" pour vous assurer que l'activation HTTP y est également activée.

Voici une image de cette question montrant la modification de .net 4.5 à effectuer. Fonctionnalités à activer

Si vous utilisez Windows Server, essayez de suivre la première réponse à la question concernant la configuration du rôle à l'aide du gestionnaire de serveur.

41
simlawstu