Dies ist keine Frage - hier als Referenz posten:
Beim Konsumieren eines WebService wurde folgende Fehlermeldung angezeigt:
Das Anforderungsformat wird für URLs, die unerwartet mit / myMethodName enden, nicht erkannt
asp.net
web-services
römisch m
quelle
quelle
Antworten:
Auf dieser Website eine Lösung gefunden
Sie müssen lediglich Folgendes zu Ihrer web.config hinzufügen
Weitere Infos von Microsoft
quelle
Trotz 90% aller Informationen, die ich gefunden habe (während ich versuchte, eine Lösung für diesen Fehler zu finden), die mich aufforderten, das
HttpGet
undHttpPost
zur Konfiguration hinzuzufügen , funktionierte das für mich nicht ... und ergab für mich sowieso keinen Sinn.Meine Anwendung läuft auf vielen Servern (30+) und ich musste diese Konfiguration für keinen von ihnen hinzufügen. Entweder die Version der Anwendung, die unter .NET 2.0 oder .NET 4.0 ausgeführt wird.
Die Lösung für mich bestand darin, ASP.NET erneut für IIS zu registrieren.
Ich habe die folgende Befehlszeile verwendet, um dies zu erreichen ...
quelle
aspnet_regiis -i
hat es aber behoben.Stellen Sie sicher, dass Sie die richtige Methode verwenden: Post / Get, den richtigen Inhaltstyp und die richtigen Parameter (Daten).
quelle
content-type: application/json
dieses Problem auch für mich gelöst.Hervorragend.
Fall 2 - wo das gleiche Problem auftreten kann) In meinem Fall war das Problem auf die folgende Zeile zurückzuführen:
Es funktioniert gut auf dem Server, da die Webservice-Funktion direkt aufgerufen wird. Dies schlägt jedoch fehl, wenn Sie den Dienst direkt über .Net in der Debug-Umgebung ausführen und die manuelle Ausführung der Funktion testen möchten.
quelle
Ich habe diesen Fehler erhalten, als ich eine alte App von einem Server auf einen anderen verschoben habe. Ich habe die
<add name="HttpGet"/> <add name="HttpPost"/>
Elemente zur web.config hinzugefügt, wodurch der Fehler geändert wurde in:Um diesen Fehler zu beheben, musste ich die ScriptHandlerFactory-Zeilen zu web.config hinzufügen:
Warum es ohne diese Zeilen auf einem Webserver und nicht auf dem anderen funktioniert hat, weiß ich nicht.
quelle
Ich verwende die folgende Codezeile, um dieses Problem zu beheben. Schreiben Sie den folgenden Code in die Datei web.config
quelle
Ich hatte das Problem nicht, als ich in localhost entwickelte. Sobald ich jedoch auf einem Webserver veröffentlicht habe, gab der Webservice ein leeres (leeres) Ergebnis zurück und ich sah den Fehler in meinen Protokollen.
Ich habe das Problem behoben, indem ich meinen Ajax-Inhaltstyp auf Folgendes gesetzt habe:
und mit:
auf dem Objekt, das ich gepostet habe.
quelle
Ich habe diesen Fehler auch mit Apache Mod-Mono bekommen. Es sieht so aus, als ob die Dokumentationsseite für den Webservice unter Linux noch nicht implementiert ist. Trotz dieses Fehlers funktioniert der Webservice. Sie sollten es sehen, indem Sie
?WSDL
am Ende der URL hinzufügen , dh http: //localhost/WebService1.asmx? WSDLquelle
In meinem Fall trat der Fehler auf, als ich von meinem lokalen PC Windows 10 auf einen dedizierten Server mit Windows 2012 wechselte. Die Lösung für bestand darin, der web.config die folgenden Zeilen hinzuzufügen
quelle
In HTML müssen Sie den Aufruf in einer Form mit einem GET mit so etwas wie einschließen
Sie können auch a verwenden,
POST
wobei die Aktion der Speicherort des Webdienstes ist, und den Parameter über ein Eingabe-Tag eingeben.Es gibt auch
SOAP
und Proxy-Klassen.quelle
In meinem Fall hatte ich eine Funktionsüberladung, die diese Ausnahme verursachte. Nachdem ich den Namen meiner zweiten Funktion geändert hatte, lief sie in Ordnung. Vermutlich unterstützt der Webserver keine Funktionsüberladung
quelle
In unserem Fall wurde das Problem dadurch verursacht, dass der Webdienst mit der Anforderungsmethode OPTIONS (anstelle von GET oder POST) aufgerufen wurde.
Wir wissen immer noch nicht, warum das Problem plötzlich auftrat. Der Webdienst lief seit 5 Jahren perfekt über HTTP und HTTPS. Wir sind die einzigen, die den Webdienst nutzen, und er verwendet immer POST.
Kürzlich haben wir beschlossen, die Site, auf der der Webdienst gehostet wird, nur SSL zu erstellen. Wir haben der Web.config Umschreiberegeln hinzugefügt, um alles HTTP in HTTPS zu konvertieren, bereitgestellt und sofort zusätzlich zu den regulären GET- und POST-Anforderungen OPTIONS-Anforderungen abgerufen. Die OPTIONS-Anforderungen haben den in diesem Beitrag beschriebenen Fehler verursacht.
Der Rest der Anwendung hat einwandfrei funktioniert. Aufgrund dieses Problems erhielten wir jedoch immer wieder Hunderte von Fehlerberichten.
Es gibt mehrere Beiträge (z. B. diesen ), in denen der Umgang mit der OPTIONS-Methode erläutert wird. Wir haben die OPTIONS-Anfrage direkt in der Global.asax bearbeitet. Dies ließ das Problem verschwinden.
quelle
Ich habe diesen Fehler erhalten, bis ich zu Beginn meines Webdienstaufrufs $ .holdReady (true) und nach dessen Ende $ .holdReady (false) hinzugefügt habe (wie im folgenden Code gezeigt ) . Dies ist eine jQuery-Sache, um den Bereitschaftsstatus der Seite anzuhalten, damit jedes Skript in der Funktion document.ready darauf wartet (unter anderem mögliche, aber mir unbekannte Dinge).
quelle
Stellen Sie sicher, dass Sie benutzerdefinierte Fehler deaktivieren. Dies kann das ursprüngliche Problem in Ihrem Code maskieren:
Veränderung
zu
quelle
eine WebMethod, die einen ContextKey erfordert,
Wenn dieser Schlüssel nicht gesetzt ist, wurde die Ausnahme angezeigt.
Behebung durch Zuweisung des AutoCompleteExtender-Schlüssels.
quelle