System.Web.Services.- Protokolle.SoapException: Server nicht erkennen, den Wert des HTTP-Headers SOAPAction:
Ausnahme fließt, wenn ich versuche, eine Methode aufzurufen, die auf web-service:
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)
Den web service-namespace:
[WebService(Namespace = "http://internaltest.temp.us/MyWebService.asmx")]
Ich Tat etwas Forschung und fand heraus, dass diese Ausnahme, da fließt der web service-namespace verwiesen wird, wurde das Projekt unterscheidet sich von der server-web-service-namespace, aber ich habe versucht, das entfernen von web-Referenz und fügen Sie es wieder in das Projekt, aber das Ergebnis war trotzdem das gleiche.
Meine situation war ähnlich wie der nachstehende Artikel:
http://bluebones.net/2003/07/server-did-not-recognize-http-header-soapaction/
Vom Artikel:
Also im Grunde der web-service wurde verschoben aus http://foo.com/servicename
zu http://bar.com/servicename aber der "namespace" des web-service
blieb als http://foo.com/servicename, weil niemand Sie verändert.
Das problem ist:
So ändern Sie den namespace des web-Referenz?
- Können Sie eine Aufzeichnung der raw-Anfrage (mit so etwas wie Fiddler)? Auch, wenn Sie die Anfrage haben, versuchen Sie den namespace und mit SoapUI und senden Sie uns Ihre service-Anfrage, um sicherzustellen, dass es ordnungsgemäß funktioniert.
- Nur jetzt ersetzt die gesamte webreference-namespace und das problem gelöst
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zusätzlich zu entfernen und das hinzufügen von web-Referenz, die Sie könnten versuchen, regenerierende proxies mit wsdl.exe wie vorgeschlagen hier, mit den namespace wieder. Hoffe es hilft
Bekam ich auch gleiche Ausnahme beim aufrufen eines webservice. In meinem client code, ich war mit falschen Namespace zu beziehen, um den WebService. Also, wenn ich wurde verwiesen auf die WebService, benutzte ich die voll qualifizierten Namen wie: - Namespace.WebService, das löste das Problem für mich.
Meine Erfahrungen, denn dies kann helfen, jemand da draußen.
Beispiel zu erklären, der Fall:
Eigentliche Methode:
Ihnen umbenannt wurde, um
Foo
Unrecht als Methode:
Richtige Aufruf:
Anderen schamlos Weg, um den Fehler zu erhalten ist, wenn Sie dynamisch ändern die Endpunkt-url und Sie in eine asmx-Adresse anstelle eines wcf-und Umgekehrt.
Dies kann passieren, wenn der Wert der
SOAPAction
Eigentum der WS ist nicht gesetzt (null
) oder nicht korrekt in der Anforderung gesendet. Ich bin mit der apache-Bibliothek zu verbinden, um die Dienste in meinem aktuellen Projekt, und unten finden Sie meine Lösung/workaround.Da nicht
setSoapAction
Methode für meine apache-Fall, habe ich IhresetProperty
Methode und zugewiesenSOAPAction
Namen, die Eigenschaft manuell.Konnte ich nicht auf den service ohne mithilfe dieser beiden Methoden in der gleichen Zeit.
Ich hoffe das hilft.