c# – 如何为服务引用指定Web代理?

c# – 如何为服务引用指定Web代理?,第1张

概述我在 http://chennaiemergency.co.in/sree/s2.php?wsdl在线发现了一个简单的Web服务,我可以使用2个浮点值(1,1)通过SOAP UI调用,并在1-2秒内轻松获得响应. 现在,在一个新的visual studio 2010控制台应用程序项目中,我“添加服务引用”并提供WSDL.然后在生成的客户端中我这样做: ServiceReference1.ChnEm 我在 http://chennaiemergency.co.in/sree/s2.php?wsdl在线发现了一个简单的Web服务,我可以使用2个浮点值(1,1)通过SOAP UI调用,并在1-2秒内轻松获得响应.
现在,在一个新的visual studio 2010控制台应用程序项目中,我“添加服务引用”并提供WSDL.然后在生成的客户端中我这样做:
ServiceReference1.ChnEmergencyPortTypeClIEnt clIEnt = new ChnEmergencyPortTypeClIEnt();    string hospital = clIEnt.hospital(1,1);

我在1分钟后得到超时异常.
我确实禁用了防火墙.
我使用的是windows7x64
我通过代理服务器使用互联网.

我通过添加Web引用尝试了同样的事情,但我得到了相同的超时错误.

现在在Web参考实现中,我做了以下几点修改:

WebProxy webProxy = new WebProxy("<my proxy server name>",<port>);            ChnEmergency clIEnt = new ChnEmergency();            clIEnt.Timeout = 200000;            clIEnt.Proxy = webProxy;            string hospital = clIEnt.hospital(1,1);

但我还是暂停了.我遗失的任何建议?

我使用直接(通过电话)内部连接进行了快速测试,该连接不涉及代理服务器.我能够成功访问.这表明我提供webproxy的方式有问题. IE互联网设置表明我的代理设置是:

地址:a.b.c.com
港口:80

所以我正在构建像这样的webproxy

WebProxy webProxy = new WebProxy("a.b.c.com",80);

现在我不知道某处是否有某种“安全的http”概念,我也不知道如何弄明白.但是快速尝试使用http://a.b.c.com和https://a.b.c.com的浏览器产生了不同的结果.在“http”的情况下,我得到了无效的网址.在“https”中,错误是“Google Chrome与a.b.c.com的连接尝试被拒绝.网站可能已关闭,或者您的网络可能未正确配置”

如果我将webproxy与https一起使用,则表示“服务点管理器未配置为https”

我用fiddler查看活动,我看到请求确​​实出现在fiddler中.但没有回应.这是否意味着请求正在通过?或者请求可以在较低级别被阻止(即,在它通过提琴手之后).

解决方法 我试图快速制作一个小型的Web项目,它似乎工作正常,但你添加webservice的方式,它返回xml像这样:
<?xml version="1.0" enCoding="ISO-8859-1"?>      <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/enCoding/">    <SOAP-ENV:Body>          <ns1:hospitalResponse xmlns:ns1="urn:ChnEmergency">            <return xsi:type="xsd:string">12.944672~80.134578~Chrompet GH~Government~GST Road,Chrompet~Chrompet~600036</return>      </ns1:hospitalResponse>    </SOAP-ENV:Body></SOAP-ENV:Envelope>

如果您的代理需要密码,您可以尝试:

var proxy = new WebProxy("proxy.foo.com",8080);proxy.Credentials = new NetworkCredential("user","pass");WebRequest.DefaultWebProxy = proxy;
总结

以上是内存溢出为你收集整理的c# – 如何为服务引用指定Web代理?全部内容,希望文章能够帮你解决c# – 如何为服务引用指定Web代理?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1244249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存