Passare dynamicmente al percorso URL di riferimento del servizio Web WCF tramite il file di configurazione

Come si cambia dynamicmente il percorso dell’URL di riferimento del servizio Web WCF attraverso il file di configurazione?

Vuoi semplicemente sostituire l’URL che è nella configurazione in un URL diverso. Supponi di avere un servizio di test e un servizio dal vivo. Puoi farlo solo

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

Dove quegli url vengono da dove vuoi

Solo per espandere la risposta di 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!

Non c’è commutazione dynamic. Ogni volta che si desidera utilizzare un altro URL, è necessario creare una nuova istanza di proxy del servizio (client) e passare EndpointAddress o il nome della configurazione enpoint al costruttore.

sicuro di poter fare questo, dare un’occhiata qui: Come configurare i client per un servizio wcf?

è assolutamente normale puntare a localhost in fase di sviluppo e modificare l’indirizzo (url) in produzione nel web.config

non è ansible l’URL dell’endpoint dopo ogni chiamata.

PER ESEMPIO

in tal caso, riceverai risposta da NEWURL:

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

ma se chiamerai qualsiasi metodo prima di cambiare url, l’url verrà usato da app.config, come nel prossimo esempio:

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