2013-03-31 3 views
0

J'espère que quelqu'un pourrait me pointer vers un bon exemple « simple », de préférence à l'aide vb.net par opposition à C#, qui montre comment on peut configurer dynamiquement l'adresse de point final à l'exécution dans une application de formulaires Windows. J'ai beaucoup d'expérience dans la création de chaînes de connexion dynamiques pour les connexions de bases de données mais c'est la première fois que je dois travailler avec wcf et si ce que j'ai lu semble indiquer que c'est possible, je n'ai pas encore trouvé bon exemple de travail simple qui démontre la théorie dans la pratique. L'application que je construis doit être livrée avec une adresse de test (liée à une base de données de test) afin que les utilisateurs finaux puissent établir qu'ils sont parfaitement au courant de ce qu'ils doivent faire (ils relieront à un gouvernement officiel base de données en réalité pour essais préliminaires réussis sont une condition préalable) avant d'utiliser la base de données réelle en vain. Comme la seule différence entre les deux est l'adresse que je voudrais rendre ceci configurable dynamiquement.configuration Dynamiquement la partie d'adresse d'un point de terminaison WCF

Je souhaite recevoir des suggestions ou des pointeurs que quelqu'un puisse faire à ce sujet.

Merci

Répondre

2

Service Pass Uri service proxy via un constructeur

  var serviceProxy = new YourClient(
       new BasicHttpBinding("BasicHttpBinding_IService"), 
       new EndpointAddress(new Uri("http://server:port/address"))); 

YourClient classe est généré automatiquement, Visual Studio crée lorsque vous ajoutez référence au service. Le nom de liaison doit provenir de votre fichier de configuration.


Modifié: Il semble votre question n'a pas été ou non seulement sur la configuration du client, mais aussi de config de service. Vous pouvez exposer votre service via plus d'un point de terminaison, vous devez ajouter à ce fichier de configuration. Et here était une question de savoir comment déterminer dans le code que le client exactement endpoind a été consulté. Vous pouvez vérifier cela

OperationContext oc = OperationContext.Current; 

if(oc != null) 
{ 
    string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString(); 
} 

et en fonction de wasCalledOn définir la connexion de base de données.

Questions connexes