Anfänger: WebService mit WinForm konsumieren

Charriu

Mitglied
Hallo,
Ich hoffe irgendjemand kann mir hier weiter helfen. Ich beginne gerade mich mit dem Thema "WebService" auseinander zu setzen. Habe mit Visual Studio 2008 dann einen solchen WebService angelegt.

Dieser WebService funktioniert auch, ich kann mit einer ASP.Webanwendung darauf zugreifen und die MEthode aufrufen. Funktioniert alles tadellos, nun aber zum Problem:

Leider ist es nicht Sinn der Übung gewesen da mit einer Webseite drauf zu zugriefen, weil der WebService durch eine Windows Forms Anwendung konsumiert werden soll. Bin langsam total am berzweifeln, weil ich konnte den WebService mit "Webverweis hinzufügen..." in dem anderen Projekt einbauen. Diesen Menüpunkt gibt es bei einer Windows Form Anwendung gar nicht. Das wird doch aber sicher gehen, oder? Google hat dazu nicht viel ausgespuckt bzw. behauptet einfach das es diesen Befehl im Menü gäbe (siehe Anhang).

Schonmal vielen Dank im Vorraus!

Charriu
 

Anhänge

  • menu.GIF
    menu.GIF
    21,8 KB · Aufrufe: 59
Hi

Ich hab "nur" die englische Version von VS. Da heißt der Menü-Punkt "Add service reference...". Das müsste bei dir der Punkt "Dienstverweiß hinzufügen..." (ich liebe diese Übersetzungen) sein.
Da kannst du die Addresse zum WebService angeben (Zur Asmx-Datei).
 
Hallo,
Hab es zuerst mit dem Dienstverweis versucht. Da bin ich zwar irgendwie an den WebService rangekommen, aber konnte kein Objekt von dem erzeugen um dann die Methoden aufzurufen. Der hat alles mögliche vorgeschlagen was ich da machen könnte, aber ich bin nicht an die Methode ran gekommen, die meine Daten liefert.

Aber hier eine Lösung, die bei mir funktioniert hat:
  1. In die Projekteigenschaften gehen
  2. Unter "Anwendung" auf Zielframework "MS .NET 2.0" umstellen
  3. Sichern
  4. Nun Rechtsklick auf das Projekt und "Webverweis hinzufügen..." ist nun da

Weiß jetzt natürlich nicht, was durch diese Umstellung noch alles nicht mehr geht. Unter "Verweis" im Projektmappen-Explorer haben einige Einträge nun ein gelbes Warnzeichen.

Aber immerhin kann mein Programm nun den WebService benutzten und das war ja Sinn der Sache.

Gruß,
Charriu
 
Hallo,
Der WebService funktioniert nun einwandfrei, wenn ich in unter Visual Studio 2008 starte und meine Methoden machen auch exakt das was sie machen sollen. Nun gehe ich auf das Projekt und "Veröffentliche" in meinem Web-Ordner vom IIS und rufe das ganze im Explorer auf.
Da kracht es dann, die eine Methode kann aufgerufen werden, die andere geht aber nicht. Es wird eine HTTP 500 angezeigt. Und wenn ich nochmal auf Refreh klicke dann kommt:

Serverfehler in der Anwendung /.
--------------------------------------------------------------------------------

Unbekanntes Anforderungsformat für einen URL, der unerwartet mit '/deployRoE' endet.
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.InvalidOperationException: Unbekanntes Anforderungsformat für einen URL, der unerwartet mit '/deployRoE' endet.

Quellfehler:

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.

Stapelüberwachung:


[InvalidOperationException: Unbekanntes Anforderungsformat für einen URL, der unerwartet mit '/deployRoE' endet.]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +502648
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +211
System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) +145
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +175
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +161

Was mir leider so gar nichts sagt, wie gesagt unter VS läuft auch diese Methode einwandfrei, daher schließe ich einen Programm-Fehler irgendwie aus.

Sehr merkwürdig das Ganze und ja ich gebe zu, ich hab von der ganzen Geschichte wenig Ahnung. Aber als ich das Praktikum anfing meinten sie, das wäre nicht so schwer und nun kann hier keiner helfen. Hat jemand von euch vielleicht eine Idee?

Gruß,
Charriu
 

Neue Beiträge

Zurück