За 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 стекове имат свои транспортни интерфейси. Изберете поддържаната клиентска настройка, преди да въведете персонализирано разширение.

Подобни статии