Comment basculer de manière dynamique le chemin de l'URL de référence du service Web WCF via le fichier de configuration?
Voulez-vous simplement remplacer l'URL figurant dans la configuration par une autre URL? Supposons que vous ayez un service de test et un service en direct. Vous pouvez simplement faire ça.
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 dynamique. Chaque fois que vous souhaitez utiliser une autre URL, vous devez créer une nouvelle instance de service proxy (client) et transmettre EndpointAddress ou le nom de configuration enpoint au constructeur.
assurez-vous que 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 essayer l’url du terminal après tout appel.
PAR EXEMPLE.
dans ce cas, vous obtiendrez la 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 n'importe quelle méthode avant de changer l'URL, l'URL sera utilisé 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