Для клієнта ASMX на основі HttpWebClientProtocol .NET Framework налаштуйте відкриту властивість Proxy перед першою мережевою операцією:

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

ReportsService — це згенерований клас, а proxyAccount походить із розгортання. Облікові дані служби SOAP окремі. Це призначення не потрібно повторювати всередині кожної згенерованої операції.

Якщо зміна стосується базового параметра запиту або інструментування, використовуйте перевизначуваний GetWebRequest(Uri) старої базової реалізації. Якщо згенерований клас частковий, тримайте відповідне часткове оголошення в окремому скомпільованому файлі; інакше перевизначення може надати відповідний похідний клієнт. Викликайте базову реалізацію та зберігайте звичайну побудову запиту.

Це розміщення переживає оновлення веб-посилання: повторна генерація може замінити ручні правки в Reference.cs, а окремо підтримувані розширення залишаються відтворюваними.

Змінюйте лише ту поведінку запиту, яка справді потрібна. Копіювання обхідного рішення KeepAlive може вплинути на повторне використання з'єднань і автентифікацію, що залежить від стану з'єднання.

Це модель ASMX/.NET Framework. WCF та інші стеки SOAP мають власні транспортні інтерфейси. Виберіть підтримуване налаштування клієнта, перш ніж запроваджувати власне розширення.

Схожі статті