Système.Web.Services.Les protocoles.SoapException: le Serveur ne reconnaît pas la valeur de l'en-Tête HTTP SOAPAction:
Une exception flux lorsque j'essayais d'appeler une méthode de service web:
System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://localhost:53460/3Development/MyWebService.asmx/GetBasePath.
at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
Le service web de l'espace de noms:
[WebService(Namespace = "http://internaltest.temp.us/MyWebService.asmx")]
J'ai fait quelques recherches et découvert que cette exception flux parce que le service web de l'espace de noms référencés dans le projet était différent à partir du serveur web du service de noms, mais j'ai essayé de la suppression de la référence web et l'ajouter à nouveau dans le projet, mais le résultat était toujours le même.
Ma situation était similaire à ci-dessous l'article:
http://bluebones.net/2003/07/server-did-not-recognize-http-header-soapaction/
De L'Article:
Donc, fondamentalement, le service web a été déplacé de http://foo.com/servicename
pour http://bar.com/servicename mais le “namespace” du service web
resté comme http://foo.com/servicename parce que personne ne l'a changé.
Le problème est:
Comment faire pour modifier l'espace de noms de la référence web?
Seulement, aujourd'hui remplacé l'ensemble de la webreference de l'espace de noms et le problème résolu
OriginalL'auteur User2012384 | 2014-03-27
Vous devez vous connecter pour publier un commentaire.
En plus de la suppression et l'ajout de référence-web, vous pouvez essayez de régénérer les procurations à l'aide de wsdl.exe comme l'a suggéré ici, avec l'espace de noms à nouveau. Espérons que cela aide
OriginalL'auteur LakshmiNarayanan
J'ai aussi eu la même exception lors de l'appel d'un service web. Dans mon code, je l'utilise mal l'espace de Noms pour désigner le WebService. Donc, chaque fois que j'ai été appelé pour le Service web, j'ai utilisé des noms pleinement qualifiés comme: espace de Noms.WebService, qui a résolu le problème pour moi.
OriginalL'auteur Sunil P
Partager mon expérience, car cela peut aider quelqu'un là-bas.
Exemple pour expliquer le cas:
Méthode:
Vous l'avez renommé pour
Foo
Appelée à tort méthode:
Appel Correct:
OriginalL'auteur student
Une autre façon éhontée pour obtenir l'erreur est que si vous êtes de changer dynamiquement l'url du point de terminaison et de vous mettre dans un asmx adresse au lieu de la fmc, et vice-versa.
OriginalL'auteur mechanicum
Cela peut se produire lorsque la valeur de la
SOAPAction
propriété de la WS n'est pas définie (null
) ou pas correcte dans la requête envoyée. Je suis l'aide de la bibliothèque apache pour se connecter aux services dans mon projet actuel, et ci-dessous, vous pouvez trouver ma solution.Car il n'est pas un
setSoapAction
méthode pour mon apache cas, j'ai utilisé leursetProperty
méthode et assigné à laSOAPAction
nom à la propriété manuellement.Je ne pouvais pas appeler le service sans l'aide de ces deux méthodes en même temps.
J'espère que cela aidera.
OriginalL'auteur Umut Uzun