none
Einen Webservice mit "unbekannten Ziel" verwenden. RRS feed

  • Frage

  • Guten Morgen,

    ich habe auf einem meiner Webserver einen WebService eingerichtet mit dem ich den lokalen IIS verwalten kann. Dieser WebService ist in meinem Programm fest "reingeschraubt". Was ist aber wenn ich auf einem zweiten Webserver meinen WebService installiere? Klar, ich könnte wieder mit der Rechten Maustaste diesen WebService meinem Projekt hinzufügen.

    Jetzt habe ich letzte Woche versucht auf dem 2. WebService zuzugreifen in dem ich zur Laufzeit einfach die Zieladresse ändern wollte. Dabei bin ich aber immer wieder auf ReadOnly-Eigenschaften gestossen.

    Frage: Kann ich EINEN WebService in meinem Projekt installieren und zur Laufzeit die Zieladresse ändern?
    Zur Zeit sieht der Code z.B. so aus:

    Dim iis As New IISAdmin.ISAdminSoapClient
    
    

    Ginge aber auch so etwas wie:

    Dim iis As New IISAdmin.ISAdminSoapClient("http://server2.domain.de")
    
    

    Natürlich habe ich bereits gesehen das ich z.B. einen Endpoint übergeben kann. Funktioniert hat das aber leider nicht, muss da irgendwas übersehen haben.
    Könnte mir da jemand ein Beispiel zeigen wenn das geht?!

    Vielen Dank im voraus.
    Gruß
    Andy

    • Bearbeitet VBAndy Montag, 13. September 2010 04:58 Editor hat in der Domain a href mit eingefügt...
    Montag, 13. September 2010 04:56

Antworten

  • Probiers mal so:
     

      Private Sub InitEndPoint()
       ws = New verein.wsvereinSoapClient
       If Not System.Diagnostics.Debugger.IsAttached Then
        ws.Endpoint.Address = New EndpointAddress("http://...x")
       End If
      End Sub
    

    --
    Viele Gruesse
    Peter

    • Als Antwort markiert VBAndy Montag, 13. September 2010 08:36
    Montag, 13. September 2010 07:13

Alle Antworten

  • Probiers mal so:
     

      Private Sub InitEndPoint()
       ws = New verein.wsvereinSoapClient
       If Not System.Diagnostics.Debugger.IsAttached Then
        ws.Endpoint.Address = New EndpointAddress("http://...x")
       End If
      End Sub
    

    --
    Viele Gruesse
    Peter

    • Als Antwort markiert VBAndy Montag, 13. September 2010 08:36
    Montag, 13. September 2010 07:13
  • Hallo Peter,

    ah, jetzt habe ich das schon mal - Danke :-)
    Aber es gibt ein ganz klitzekleines Problem.

    Alleine schon das instanziieren reicht schon aus, um bei dem "falschen" Webservice "Guten Tag" zu sagen. Habe extra eine Pause zwischen dem instanziieren und dem setzen des neuen Endpoints gemacht und beim IIS in die LogFiles geschaut. Ich möchte aber das er GLEICH zum anderen Webservice geht und da sein "Guten Tag" macht.

    Jetzt habe ich beim Konstruktor nachgesehen was ich alles übergeben kann. Da kommt meiner Meinung nach nur eine Möglichkeit in Betracht:

    Dim Server As New IISAdmin.ISAdminSoapClient("IISAdminSoap", New System.ServiceModel.EndpointAddress("neue_url_zum_webservice/IISAdmin_NEU.asmx"))
    

    Aber auch hier wird ERST eine Verbindung beim instanziieren zu der in app.config hinterlegten Adresse aufgebaut und DANACH geht er erst zu der neuen Adresse.

    Wie kann ich es jetzt erreichen das schon BEIM instanziieren auf den anderen Webservice zugegriffen wird?!

    Gruß
    Andy

    Montag, 13. September 2010 08:25
  • Hi,

    stop... geht doch... Ich hatte den Webservice in meinem Projekt direkt vom Webserver geholt. Diesen habe ich jetzt rausgenommen und den Webservice aus meiner Projektmappe genommen. Vor dem Test habe ich dann die lokalen Development-Server beendet und hatte beim instanziieren eigentlich mit einem Fehler gerechnet, aber nein, es hat funktioniert und er hat sich mit dem neuen Endpoint verbunden bzw. unterhalten :-)

    Danke nochmals!

    Gruß
    Andy

    Montag, 13. September 2010 08:39