Quando andate ad aggiungere al vostro progetto visual studio, un riferimento ad un web service, potete decidere di farlo in modo dinamico o statico. Cioè potete o esplicitare subito l'url del servizio web oppure scegliere l'opzione "Dynamic", che vi permette di passare l'indirizzo del web service dal web.config ... in modo tale da poterlo cambiare con facilità.
Per far ciò non basta far altro che scegliere l'opzione Dynamic, al posto di Static, nel campo Url Behavior presente nelle proprietà della web reference, e settare una chiave nel vostro web.config, con l'url del web service. Questa chiave viene settata in automatico da Visual Studio .NET e viene scritta nel file di configurazione del progetto.

<appSettings>

<add key="AssemblyName.localhost.WebServiceName"
value="http://localhost/WebService.asmx"
/>
</appSettings>

Questa operazione non fa altro che cambiare il codice del file Reference.cs (o Reference.vb), che da :

public WebServiceName()

{
this.Url = "http://localhost/WebService.asmx";
}

diventa:

public WebServiceName()

{
string urlSettings = ConfigurationSettings.AppSettings("AssemblyName.localhost.WebServiceName");
if(urlSettings != null)
this.Url = string.Concat(urlSettings, "");
else
this.Url = "";
}