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.

Powiązane artykuły