.NET Framework の HttpWebClientProtocol に基づく ASMX クライアントでは、最初のネットワーク操作の前に公開 Proxy を構成します。

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

ReportsService は生成されたクラスで、proxyAccount は配置から得られます。SOAP サービスの資格情報は別です。この代入は生成された各操作の内部で繰り返す必要はありません。

変更が基になる要求オプションやインストルメンテーションに関する場合は、従来の基底クラスのオーバーライド可能な GetWebRequest(Uri) を使用します。生成されたクラスが partial の場合は、一致する partial 宣言を別にコンパイルされるファイルに保ちます。そうでない場合は適切な派生クライアントがオーバーライドを提供できます。基底の実装を呼び出し、通常の要求構築を維持します。

この配置は Web 参照を更新しても維持されます。再生成は Reference.cs の手動編集を置き換える可能性がありますが、別に管理される拡張は再現可能なままです。

実際に必要な要求動作だけを変更します。KeepAlive の回避策をコピーすると、接続の再利用や接続状態に依存する認証に影響する可能性があります。

これは ASMX/.NET Framework のモデルです。WCF や他の SOAP スタックには独自のトランスポート インターフェイスがあります。カスタム拡張を導入する前に、サポートされるクライアント設定を選択してください。

関連記事