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?
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
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.
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
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.
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.
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.
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.
Ich konnte den Dienst nicht aufrufen, ohne diese beiden Methoden gleichzeitig zu verwenden.
Ich hoffe, das wird helfen.
Tags und Links c# asp.net soap exception web-services