Une interface plusieurs webservice

Résolu
cs_jmtoulon Messages postés 85 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 3 août 2010 - 2 août 2010 à 23:22
cs_jmtoulon Messages postés 85 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 3 août 2010 - 3 août 2010 à 22:10
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

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
3 août 2010 à 20:27
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.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
3 août 2010 à 02:28
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.
0
cs_jmtoulon Messages postés 85 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 3 août 2010
3 août 2010 à 19:59
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.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
3 août 2010 à 20:30
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jmtoulon Messages postés 85 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 3 août 2010
3 août 2010 à 22:10
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 :)
0
Rejoignez-nous