Une interface plusieurs webservice [Résolu]

Signaler
Messages postés
85
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
3 août 2010
-
Messages postés
85
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
3 août 2010
-
Bonjour à tous, voici mon probleme :
J'ai crée un Webservice que j'ai deploiyé sur 3 serveurs différents.
Dans mon application principal je souhaiterais appel un webservice de façon aléatoire.

Ma meilleur hypothèse est qu'il faut créer une interface MonInterface qui expose les methodes du webservice, puis après je pourrais faire cela :

Dim maVariable As MonInterface
Dim i As Integer = 2

Select Case i
Case 0 : maVariable = New monWebserviceServeur00()
Case 1 : maVariable = New monWebserviceServeur01()
Case 2 : maVariable = New monWebserviceServeur02()
End Select

maVariable.GetAccount()

Avez vous des idées pour que la solution fonctionne ?

Salutation

5 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
T'as plus simple, changer l'url du webservice...

Public WithEvents svc As MyNamespace.WebservSoapClient

Public URL1 As String = "http://mondomaine.com/monservice0.asmx"
Public URL1 As String = "http://mondomaine.com/monservice1.asmx"
Public URL1 As String = "http://mondomaine.com/monservice2.asmx"

'Dans une procédure :
svc = New MyNamespace.WebservSoapClient()
With svc.Endpoint
   Select Case Choix
       Case 1
          .Address = New ServiceModel.EndpointAddress(URL1)
       Case 2
          .Address = New ServiceModel.EndpointAddress(URL2)
       Case 3
          .Address = New ServiceModel.EndpointAddress(URL3) 
   End Select
End With

Try
    '
    svc.Open()
    '
    'Ton code...
    '
Catch wEx As Net.WebException
    '
Catch Ex As Exception
    '
End Try


Tu ne référence ton objet qu'une seule fois mais tu change d'url pour l'objet (bien sûr tu devras réinitialiser la liaison).


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
Salut,

Ajoute simplement les 3 références de service avec des espace de noms différent pour chacun...

Pourquoi te casse tu la tête ?

Ce n'est pas parce que les 3 services web ont les même méthodes que ca change quoi que ce soit, tant qu'il s'agit de 3 adresses différentes, c'est good

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
85
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
3 août 2010

je comprends bien, cependant qu'en est-il si je souhaite qu'une variable puisse prendre en instanciation plusieur webservice. Meme si c'est le même code du webservice, sachant qu'il se trouve sur 3 serveurs différent, vb concidère que c'est 3 type différents. C'est pour cela que je souhaitais passer par une interface. Mais je ne sais pas si l'inferce doit etre directement implementer dans le webserice ou s'il faut créer une espece de wrapper pour interfacer les webservice.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
Désolé pour la faute...

Public URL1 As String = "http://mondomaine.com/monservice0.asmx"
Public URL2 As String = "http://mondomaine.com/monservice1.asmx"
Public URL3 As String = "http://mondomaine.com/monservice2.asmx"


Mais t'as du t'en douté en lisant...

De toute façon cela ne change rien c'est un exemple, mais je corrige pour la compréhention.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
85
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
3 août 2010

Merci pour ton aide et pour tes explications trés clair.
J'allais sur le chemin de la création d'un interface, qui est une solution qui aurai fonctionné aussi, mais je ne savais pas qu'on pouvais changer l'uri d'un service.

Merci d'avoir enrichi ma base de connaissance :)