2013-06-12 6 views
11

Ich versuche Webservices in .NET mvc4 zu lernen. Ich habe versucht, eine neue Internetanwendung zu erstellen und dem Projekt einen Webdienst (asmx) hinzuzufügen.HTTP 404 Fehler beim Aufruf eines lokalen Webservice in .NET MVC4

Standardmäßig fügt VS einen Webdienst "HelloWorld" hinzu. Wenn ich versuche, es im Browser auszuführen, erhalte ich die Liste der Operationen, Dienstbeschreibung (WSDL) und die Details der Operation HellowWorld. Wenn ich versuche, den Webservice aufzurufen, wird jedoch der folgende Fehler angezeigt:

Serverfehler in '/' Anwendung.

Die Ressource kann nicht gefunden werden.

Beschreibung: HTTP 404. Die Ressource, nach der Sie suchen (oder eine der Abhängigkeiten), könnte entfernt worden sein, der Name wurde geändert oder ist vorübergehend nicht verfügbar. Bitte überprüfen Sie die folgende URL und machen Sie sicher, dass es richtig geschrieben ist.

Ich könnte einige grundlegende Schritt/Einstellung vermisse ich denke. Könnte irgendein Körper bitte helfen. Vielen Dank.

+0

Meine erste Frage ist, warum haben Sie einen ASMX-Webdienst über WCF ausgewählt? –

+0

Ich habe ASMX nicht ausgewählt. Ich versuche nur, einen Webservice zu erstellen, wie er in einem Buch angegeben ist. Ich würde schließlich eine WebAPI verwenden. Allerdings wollte ich ein Beispiel erstellen und erstellen, das sowohl eine WebAPI als auch eine ASMX zu Demonstrationszwecken hätte. – saurabh

Antwort

28

Ich habe die Antwort von einem meiner Kollegen :).

Wenn wir den Dienst aufrufen, versucht der MVC, den in RegisterRoutes angegebenen Pfad aufzulösen. Daher versucht es, einen Controller mit diesem Namen und einer Methode mit dem gleichen Namen wie die Operation in diesem Controller zu finden. Die Auflösung ignoriert die Pfade mit der Erweiterung .asmx. Sie können das tun, indem Sie die folgende Zeile in RouteConfig.cs hinzufügen:

und es hat funktioniert. Vielen Dank.

+1

Vielen Dank Buddy! nach so viel Kampf konnte ich Ihre Lösungen finden .. – Dilip0165

+0

Auch nützliche Antwort http://stackoverflow.com/questions/4675367/ignoreroute-with-webservice-exclude-asmx-urls-from-routing für –

+0

Ich weiß, das ist alt , aber danke für die Post. Damit habe ich mich 7-8 Stunden gestritten. Meine lokalen Webdienste hörten auf zu arbeiten und ich konnte nicht herausfinden, was falsch war, bis ich diesen Beitrag fand. Für andere mit dem gleichen Problem ist die "routes.ignoreRoutes .." in der RouteConfig.cs hinzuzufügen. – Troels

Verwandte Themen