gpt4 book ai didi

c# - 如何使我的 WCF 服务调用通过已配置的本地代理服务器?

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:56 24 4
gpt4 key购买 nike

我编写了一个负责调用第三方 WCF 服务的类,它工作正常。我们的应用程序可以配置本地网络的代理设置,所以剩下的就是在调用电话时使用这些设置(如果已设置)。

我环顾四周,看不到任何明确说明如何执行此操作的内容。我发现我正在使用的 BasicHttpBinding 对象有一个 ProxyAddress 属性,但没有任何东西可以让我定义网络凭证或用户名和密码。

它可能就在我面前,所以我想我只需要指出正确的方向。至少我希望事情就是这么简单!我需要做的就是告诉我的服务调用本地代理服务器是什么以及要使用什么凭据。

这是我实例化服务类的代码。我省略了构建请求类、调用服务方法和处理结果的下一部分。

// Create the service instance.
var binding = new BasicHttpBinding();
var endPoint = new EndpointAddress(new Uri(_servicesBaseUri + "MyServiceName"));
var service = new WSHsgCreateSchemeRepairClient(binding, endPoint);

// Add the MessageInspector to the contract behaviours list. This will inject the SecurityHeader XML and the SOAP action.
var soapAction = _servicesBaseUri + "MyServiceName/MyServiceMethod";
service.Endpoint.Contract.Behaviors.Add(new MessageInspector(_securityHeaderUsername, _securityHeaderPassword, soapAction));

我们有一些其他的网络服务调用(使用旧的网络服务方法),它们生成一个新的 System.Net.WebProxy 实例并将其设置为服务类代理属性,但显然它在 WCF 中是不同的。

谢谢。

最佳答案

我想我已经解决了。可以设置和使用默认系统代理。 This is a very useful article如果其他人遇到相同的要求。

想法是您必须首先设置 System.Net.HttpWebRequest.DefaultWebProxy.Credentials(大概是 System.Net.CredentialCache.DefaultCredentials)——这就是“默认当您将绑定(bind)的 UseDefaultWebProxy 设置为 true 时获取代理”参数。

关于c# - 如何使我的 WCF 服务调用通过已配置的本地代理服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com