System.Web.Services.Protocols.SoapException: Der Server hat den Wert von HTTP Header SOAPAction nicht erkannt:

8

Beim Versuch, eine Methode für den Web-Service aufzurufen, tritt eine Ausnahme auf:

%Vor%

Der Namespace des Web-Service:

%Vor%

Ich habe einige Nachforschungen angestellt und festgestellt, dass diese Ausnahme auftritt, weil der Namespace des Webdienstes im Projekt vom Namespace des Server-Webdienstes abweicht. Ich habe jedoch versucht, den Webverweis zu entfernen und ihn erneut im Projekt hinzuzufügen Ergebnis war immer noch das gleiche.

Meine Situation war ähnlich wie in dem folgenden Artikel:

Ссылка

Von Artikel:

  

Im Grunde genommen wurde der Webservice von Ссылка verschoben    Ссылка , aber der "Namespace" des Web-Service   blieb als Ссылка , weil niemand es geändert hat.

Das Problem ist:

Wie ändert man den Namensraum der Web-Referenz?

    
User2012384 27.03.2014, 09:16
quelle

5 Antworten

7

Zusätzlich zum Entfernen und Hinzufügen von Web-Referenz können Sie versuchen, Proxies mit wsdl.exe wie vorgeschlagen zu regenerieren. hier mit dem Namensraum erneut. Hoffe es hilft

    
LakshmiNarayanan 31.03.2014, 12:00
quelle
2

Ich habe auch dieselbe Ausnahme beim Aufruf eines Webservice bekommen. In meinem Client-Code verwendete ich den Namespace falsch, um auf den WebService zu verweisen. Also, wann immer ich auf den WebService verwiesen wurde, verwendete ich voll qualifizierte Namen wie: Namespace.WebService, der das Problem für mich gelöst hat.

    
Sunil P 15.10.2014 09:32
quelle
1

Teilen Sie meine Erfahrung, weil dies jemanden da draußen helfen kann.

Beispiel zur Erläuterung des Falls:

Tatsächliche Methode:

%Vor%

Sie haben es in Foo

umbenannt %Vor%

Falsch aufgerufene Methode:

%Vor%

Korrekter Aufruf:

%Vor%
  

Ein Namenskonflikt (wegen der Umbenennung der Webmethode) zwischen der tatsächlichen Webmethode und der aufgerufenen Methode kann das Problem verursachen.

    
student 03.11.2015 14:08
quelle
0

Eine weitere schamlose Möglichkeit, den Fehler zu bekommen, ist, dass wenn Sie die Endpoint-URL dynamisch ändern und Sie eine asmx-Adresse anstelle einer wcf-Adresse eingeben und umgekehrt.

    
mechanicum 20.10.2015 08:59
quelle
0

Dies kann passieren, wenn der Wert der Eigenschaft SOAPAction des WS nicht gesetzt ist ( null ) oder in der gesendeten Anforderung nicht korrekt ist. Ich verwende die Apache-Bibliothek, um eine Verbindung zu den Diensten in meinem aktuellen Projekt herzustellen, und unten finden Sie meine Lösung / Abhilfe.

%Vor%

Da es für meinen Apache-Fall keine setSoapAction -Methode gibt, habe ich ihre setProperty -Methode verwendet und der Eigenschaft SOAPAction manuell diese Eigenschaft zugewiesen.

%Vor%

Ich konnte den Dienst nicht aufrufen, ohne diese beiden Methoden gleichzeitig zu verwenden.

Ich hoffe, das wird helfen.

    
Umut Uzun 23.12.2015 08:59
quelle