Basculer dynamicment le chemin de l’URL de référence du service Web WCF via le fichier de configuration

Comment basculer dynamicment le chemin de l’URL de référence du service Web WCF via le fichier de configuration?

Voulez-vous simplement remplacer l’URL qui se trouve dans la configuration par une autre URL. Disons que vous avez un service de test et un service en direct. Vous pouvez simplement le faire.

client.Endpoint.Address = new EndpointAddress(Server.IsLiveServer() ? @"LiveUrl" : @"TestURl"); 

D’où viennent ces URL d’où vous voulez

Juste pour développer la réponse d’Erin: –

 MyClient client = new MyService.MyClient(); client.Endpoint.Address = new EndpointAddress(new Uri("insert new url here"), client.Endpoint.Address.Identity, client.Endpoint.Address.Headers); client.Open(); 

HTH!

Il n’y a pas de commutation dynamic. Chaque fois que vous souhaitez utiliser une autre URL, vous devez créer une nouvelle instance de proxy de service (client) et transmettre le nom de configuration EndpointAddress ou enpoint au constructeur.

Bien sûr, vous pouvez le faire, regardez ici: Comment configurer les clients pour un service wcf?

il est absolument normal de pointer vers localhost en développement et de changer l’adresse (URL) en production dans le fichier web.config

vous ne pouvez pas forcer l’url de point final après un appel.

PAR EXEMPLE

dans ce cas, vous recevrez une réponse de NEWURL:

 MyClient client = new MyService.MyClient(); client.Endpoint.Address = new EndpointAddress("NEWURL"); client.Hello(); //return is hello response from NEWURL 

mais si vous appelez une méthode avant de changer l’URL, l’URL sera utilisée depuis app.config, comme dans l’exemple suivant:

 MyClient client = new MyService.MyClient(); client.Endpoint.Address = new EndpointAddress("NEWURL"); client.Hello(); //return is hello response from BASEURL