我正在尝试连接到指向WSDL文件的URI,该文件使用MetadataExchangeClient类描述WCF服务。
var mexClient = new MetadataExchangeClient(uri, MetadataExchangeClientMode.HttpGet);
var metaDocs = mexClient.GetMetadata();
问题是我无法直接访问此uri并需要通过HTTP代理服务器。 代理服务器URL可以在运行时更改,因此我不能简单地通过app.config文件进行配置。
在哪里可以在MetadataExchangeClient类中指定代理服务器信息?
有人有个主意吗? WCF专家?
答案 0 :(得分:3)
您需要在app.config
中指定代理,如下所示:
<system.net>
<defaultProxy enabled="true">
<proxy bypassonlocal="true"
proxyaddress="http://proxy.domain.org:8888/" />
</defaultProxy>
</system.net>
答案 1 :(得分:0)
您可以覆盖GetChannelFactory并提供可以创建合适端点的实现,即添加了代理详细信息的BasicHtppBinding。
请参阅此处,了解如何以编程方式设置Binding。
请参阅此处了解创建频道工厂的起点(参见帖子末尾的3条评论)
这显示了如何将MetadataExchangeClient与自定义绑定结合使用:
这是.NET Framework Source to MetadataExchangeClient,因此您可以更好地了解它正在做什么。