Per un client ASMX basato su HttpWebClientProtocol di .NET Framework, configurare la proprietà pubblica Proxy prima della prima operazione di rete:

var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
    Credentials = proxyAccount
};

ReportsService è la classe generata e proxyAccount proviene dalla distribuzione. Le credenziali del servizio SOAP sono separate. Questa assegnazione non deve essere ripetuta all'interno di ogni operazione generata.

Se la modifica riguarda un'opzione di richiesta sottostante o la strumentazione, usare il GetWebRequest(Uri) sovrascrivibile della base legacy. Mantenere una dichiarazione parziale corrispondente in un file compilato separato quando la classe generata è parziale; in caso contrario un client derivato appropriato può fornire la sovrascrittura. Chiamare l'implementazione di base e preservare la normale costruzione della richiesta.

Questa collocazione sopravvive all'aggiornamento del riferimento web: la rigenerazione può sostituire le modifiche manuali in Reference.cs, mentre le estensioni mantenute separatamente restano riproducibili.

Modificare solo il comportamento della richiesta realmente necessario. Copiare una soluzione KeepAlive può influire sul riutilizzo delle connessioni e sull'autenticazione che dipende dallo stato della connessione.

Questo è il modello ASMX/.NET Framework. WCF e gli altri stack SOAP hanno le proprie interfacce di trasporto. Scegliere l'impostazione client supportata prima di introdurre un'estensione personalizzata.

Articoli correlati