2

MetadataExchangeClient クラスを使用して、WCF サービスを記述する WSDL ファイルを指す URI に接続しようとしています。

var mexClient = new MetadataExchangeClient(uri, MetadataExchangeClientMode.HttpGet);
var metaDocs = mexClient.GetMetadata();

問題は、この uri に直接アクセスできず、HTTP プロキシ サーバーを経由する必要があることです。プロキシ サーバーの URL は実行時に変更される可能性があるため、app.config ファイルで単純に構成することはできません。

MetadataExchangeClient クラスのどこでプロキシ サーバー情報を指定できますか?

誰でもアイデアを得ましたか?WCFの専門家?

4

2 に答える 2

3

app.config次のようにプロキシを指定する必要があります。

<system.net>
  <defaultProxy enabled="true">
   <proxy bypassonlocal="true"
          proxyaddress="http://proxy.domain.org:8888/" />
  </defaultProxy>
</system.net>
于 2012-07-25T09:51:27.010 に答える
0

GetChannelFactory をオーバーライドして、適切なエンドポイント、つまりプロキシの詳細が追加された BasicHtppBinding を作成できる実装を提供できます。

プログラムで Binding を設定する方法の手がかりについては、こちらを参照してください。

チャネル ファクトリの作成の開始点については、こちらを参照してください (投稿の最後にある 3 つのコメントを参照してください)。

これは、カスタム バインディングで MetadataExchangeClient を使用する方法を示しています。

ここに MetadataExchangeClient の .NET Framework ソースがあるので、それが何をしているかをよりよく理解できます。

于 2012-07-25T19:16:08.677 に答える