Para um cliente ASMX baseado em HttpWebClientProtocol do .NET Framework, configure a propriedade pública Proxy antes da primeira operação de rede:

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

ReportsService é a classe gerada e proxyAccount vem da implementação. As credenciais do serviço SOAP são separadas. Esta atribuição não precisa de ser repetida dentro de cada operação gerada.

Se a alteração disser respeito a uma opção de pedido subjacente ou à instrumentação, utilize o GetWebRequest(Uri) substituível da base antiga. Mantenha uma declaração parcial correspondente num ficheiro compilado separado quando a classe gerada for parcial; caso contrário, um cliente derivado adequado pode fornecer a substituição. Chame a implementação base e preserve a construção normal do pedido.

Essa colocação sobrevive à atualização da referência web: a regeneração pode substituir edições manuais em Reference.cs, enquanto as extensões mantidas separadamente continuam reproduzíveis.

Altere apenas o comportamento do pedido que é realmente necessário. Copiar uma solução alternativa de KeepAlive pode afetar a reutilização de ligações e a autenticação que depende do estado da ligação.

Este é o modelo ASMX/.NET Framework. O WCF e outras pilhas SOAP têm as suas próprias interfaces de transporte. Escolha a definição de cliente suportada antes de introduzir uma extensão personalizada.

Artigos relacionados