2

我正在尝试使用 MetadataExchangeClient 类连接到指向 WSDL 文件的 URI,该文件描述 WCF 服务。

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。

有关如何以编程方式设置绑定的线索,请参见此处。

有关创建通道工厂的起点,请参见此处(请参阅帖子末尾的 3 条评论)

这显示了如何将 MetadataExchangeClient 与自定义绑定一起使用:

这是 MetadataExchangeClient 的 .NET Framework 源,因此您可以更好地了解它在做什么。

于 2012-07-25T19:16:08.677 回答