Trzymaj ustawienia proxy ASMX poza wygenerowanym plikiem Reference.cs
Skonfiguruj klienta usługi ASMX przez jego publiczne właściwości proxy i trzymaj niezbędne dostosowanie żądań oddzielnie od regenerowanych plików referencyjnych.
W przypadku klienta ASMX opartego na HttpWebClientProtocol platformy .NET Framework skonfiguruj publiczną właściwość Proxy przed pierwszą operacją sieciową:
var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
Credentials = proxyAccount
};
ReportsService to wygenerowana klasa, a proxyAccount pochodzi z wdrożenia. Poświadczenia usługi SOAP są oddzielne. Tego przypisania nie trzeba powtarzać w każdej wygenerowanej operacji.
Jeśli zmiana dotyczy bazowej opcji żądania lub instrumentacji, użyj możliwej do nadpisania metody GetWebRequest(Uri) starszej klasy bazowej. Gdy wygenerowana klasa jest częściowa, zachowaj pasującą deklarację częściową w osobnym skompilowanym pliku; w przeciwnym razie nadpisanie może zapewnić odpowiedni klient pochodny. Wywołaj implementację bazową i zachowaj normalne budowanie żądania.
To umiejscowienie przetrwa aktualizację odwołania sieciowego: regeneracja może zastąpić ręczne zmiany w Reference.cs, podczas gdy utrzymywane osobno rozszerzenia pozostają odtwarzalne.
Zmieniaj tylko to zachowanie żądania, które jest naprawdę potrzebne. Skopiowanie obejścia KeepAlive może wpłynąć na ponowne użycie połączeń i uwierzytelnianie zależne od stanu połączenia.
To jest model ASMX/.NET Framework. WCF i inne stosy SOAP mają własne interfejsy transportowe. Wybierz obsługiwane ustawienie klienta przed wprowadzeniem niestandardowego rozszerzenia.