Laden...

WSE3 + Webservice als Windowsdienst -> unbekanntes URI Prefix

Erstellt von SkySurfer vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.839 Views
S
SkySurfer Themenstarter:in
298 Beiträge seit 2006
vor 14 Jahren
WSE3 + Webservice als Windowsdienst -> unbekanntes URI Prefix

Hi,

ich hab ein Webservice erstellt, welchen ich als Windowsdienst laufen lassen möchte.
Dafür habe ich ihn mittels WSE3 gestartet. Der Dienst läuft und der Webservice ist unter soap.tcp://localhost/Service erreichbar.

Nun habe ich eine Proxyklasse mit wsewsdl3 erzeugt.
Da meine WebMethods teilweise mehr als 1 Übergabeparameter haben(das kann ich nicht ändern) habe ich die Proxyklasse als WebClient erzeugt. SoapClient kann ja nur WebMethods mit 0 - 1 Übergabeparametern handeln.

Nach dem einbinden der Proxyklasse konnte ich mein Projekt starten, jedoch wenn es zum Verbindungsaufbau mit dem dem Service kommt, erhalte ich eine Exception "Unbekanntes URI-Prefix".

Es scheint als könnte ein webClient mit den "soap.tcp" Prefix nichts Anfangen.

Hat jemand Erfahrung damit?

Gruß SkySurfer

Es gibt 11 Arten von Menschen:

  • Die, die binär verstehen
  • Die, die es nicht tun
  • Die, die Witze darüber machen
S
SkySurfer Themenstarter:in
298 Beiträge seit 2006
vor 14 Jahren

Der Proxy muss als soapClient erstellt werden dann funktioniert es.
Da die Remoteproceduren jedoch mehr als 1 Parameter benötigen habe ich
DTO's für jede Methode erzeugt. die die Parameter halten.

z.B diese:


public class GetSchemaDTO 
{   
    private string[] tableNamesField;
    private SyncSession syncSessionField;
    
    public string[] TableNames {
        get {
            return this.tableNamesField;
        }
        set {
            this.tableNamesField = value;
        }
    }
    
    public SyncSession SyncSession {
        get {
            return this.syncSessionField;
        }
        set {
            this.syncSessionField = value;
        }
    }
}

Diese wird gefüllt und über den Proxy versendet.
Jedoch kommt beim Service als Übergabeparameter nur NULL an.
Woran kann das liegen?
Benötigt die Klasse noch irgendwelche Attribute?

Gruß SkySurfer

Es gibt 11 Arten von Menschen:

  • Die, die binär verstehen
  • Die, die es nicht tun
  • Die, die Witze darüber machen
S
SkySurfer Themenstarter:in
298 Beiträge seit 2006
vor 14 Jahren

Die mit wsewsdl3 Tool generierte Proxyklasse für soap.tcp funktioniert erst ab einem Framework ≥ 3. Da auf Funktionen zugegriffen werden, die im 2.0 NotImplementetExceptions werfen.

Wenn man die VisualStudio Integration von WSE3 aktiviert und einen Webverweis erzeugt wird funktionierender Code generiert.

Es gibt 11 Arten von Menschen:

  • Die, die binär verstehen
  • Die, die es nicht tun
  • Die, die Witze darüber machen