problemlöser64
Ensign
- Registriert
- Dez. 2009
- Beiträge
- 213
Hallo.
Ich will aus einem csharp.net-Projekt auf einen in VB geschriebenen Webservice zugreifen, d.h. dessen Methoden aufrufen.
Im Folgenden beschreibe ich meine bisherige vorgehensweise.
-Neues Webseervice Projekt anlegen
Datei -> Neu -> Website; Sprache= Visual Basic, url= http://localhost/WebService1
-Ich habe dann die Standartdateien so gelassen, wie sie schon standen. Beispielsweise gab es gleich eine Funktion HelloWorld. Hier der Quellcode der Service1.asmx.vb:
-Nun habe ich das erstelle und dann war es automatisch auf dem Server. Wenn ich jetzt auf http://localhost/WebService1 im Browser gehe, kommt die Dienstauflistung, in der nur die HelloWorld() steht.
-Jetzt bin ich in mein csharp.net Projekt gewechselt. Rechtsklick auf das Projekt im Projektexplorer und den Webverweis hinzugefügt.
-Dann habe ich oben in mein csharp.net Projekt geschrieben:
In meinem IntelliSense gibt es jetzt aber nur 2 neue Einträge:
1. : class Projektname.Verweisname.HelloWorldCompletedEventArgs
2. : delegate Projektname.Verweisname.HelloWorldCompletedEventHandler
erwarten würde ich stattdesseen so was:
string Projektname.Verweisname.HelloWorld()
Die Klasse HelloWorldCompletedEventArgs hat Member: Empty, bool Equals(..),
bool ReferenceEquals(..), also nichts, was ich brauchen könnte, um einfach nur die Funktion HelloWorld() aufzurufen.
Was mache ich falsch?
Für Antworten bin ich sehr dankbar.
Keine Antworten?
Na OK, egal, Problem hat sich nämlich gerade gelöst.
Für Nachfolgende, die das selbe Problem haben:
Einfach nur die Funktion aufzurufen ist Blössinn, das kam mir dann auch.
Durch den Webverweis und das Einbinden durch
bekommt man lediglich Zugriff auf die Klasse des Webservices, die laut Quellcode Service1 heissen müsste. Seltsamerweise kann man Sie aber nur unter dem Namen Service verwenden:
Wenn jetzt jemand weiß, wieso die Klasse Service und nicht Service1 heisst, kann er das gerna hier posten, ansonsten ist mein Problem aber gelöst *** freu ***

Danke trotzdem an alle, die das Thema gelesen haben und keine Antwort wussten...
Ich will aus einem csharp.net-Projekt auf einen in VB geschriebenen Webservice zugreifen, d.h. dessen Methoden aufrufen.
Im Folgenden beschreibe ich meine bisherige vorgehensweise.
-Neues Webseervice Projekt anlegen
Datei -> Neu -> Website; Sprache= Visual Basic, url= http://localhost/WebService1
-Ich habe dann die Standartdateien so gelassen, wie sie schon standen. Beispielsweise gab es gleich eine Funktion HelloWorld. Hier der Quellcode der Service1.asmx.vb:
Code:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
' Um das Aufrufen dieses Webdiensts aus einem Skript mit ASP.NET AJAX zuzulassen, heben Sie die Auskommentierung der folgenden Zeile auf.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function
End Class
-Nun habe ich das erstelle und dann war es automatisch auf dem Server. Wenn ich jetzt auf http://localhost/WebService1 im Browser gehe, kommt die Dienstauflistung, in der nur die HelloWorld() steht.
-Jetzt bin ich in mein csharp.net Projekt gewechselt. Rechtsklick auf das Projekt im Projektexplorer und den Webverweis hinzugefügt.
-Dann habe ich oben in mein csharp.net Projekt geschrieben:
Code:
using Projektname.Verweisname;
In meinem IntelliSense gibt es jetzt aber nur 2 neue Einträge:
1. : class Projektname.Verweisname.HelloWorldCompletedEventArgs
2. : delegate Projektname.Verweisname.HelloWorldCompletedEventHandler
erwarten würde ich stattdesseen so was:
string Projektname.Verweisname.HelloWorld()
Die Klasse HelloWorldCompletedEventArgs hat Member: Empty, bool Equals(..),
bool ReferenceEquals(..), also nichts, was ich brauchen könnte, um einfach nur die Funktion HelloWorld() aufzurufen.
Was mache ich falsch?
Für Antworten bin ich sehr dankbar.
Ergänzung ()
Keine Antworten?
Na OK, egal, Problem hat sich nämlich gerade gelöst.
Für Nachfolgende, die das selbe Problem haben:
Einfach nur die Funktion aufzurufen ist Blössinn, das kam mir dann auch.
Durch den Webverweis und das Einbinden durch
Code:
using Projektname.Verweisname;
bekommt man lediglich Zugriff auf die Klasse des Webservices, die laut Quellcode Service1 heissen müsste. Seltsamerweise kann man Sie aber nur unter dem Namen Service verwenden:
Code:
Service ser = new Service();
ser.HelloWorld();
Wenn jetzt jemand weiß, wieso die Klasse Service und nicht Service1 heisst, kann er das gerna hier posten, ansonsten ist mein Problem aber gelöst *** freu ***
Danke trotzdem an alle, die das Thema gelesen haben und keine Antwort wussten...