WCF客户端连接问题

时间:2010-08-12 17:07:00

标签: wcf http-proxy

我在使用WCF客户端的.NET应用程序中使用Web服务。

端点的服务地址通过端口4338,它通过HTTPS,使用WS-Security标准保护。

所以地址是这样的:

https://[servername]:4338/[servicename]/

我只是在运行应用程序时无法与服务进行通信。 它给了我以下错误:

  

无法连接到[servername]:4338   TCP错误代码10060:连接   尝试失败,因为连接   一方没有正确回应   一段时间,或已建立   连接失败,因为连接   主持人没有回复   [服务器]:4338

但是当我运行Fiddler调查http通信时,应用程序开始工作,我将能够与服务进行通信。

同样,我想补充一点,我在托管第一个服务的同一个Web服务器上有不同的服务,第二个服务的地址托管在端口8080上,我能够与WCF客户端进行通信(没有跑Fiddler)。

所以,我用谷歌搜索,发现它可能与代理设置有关。你知道问题是什么,我该如何解决呢?

由于

3 个答案:

答案 0 :(得分:1)

Fiddler充当Internet代理服务器。通常,形式的任何症状:“当我使用Fiddler时它起作用”意味着“当有(不同的)代理服务器时它可以工作”。

检查代理服务器设置。特别是,正如empi建议的那样,在浏览器中尝试它。如果它在那里工作,可能是因为浏览器配置了代理设置,并且没有为WCF配置它们。

答案 1 :(得分:0)

如果您在Internet Explorer中设置了代理,则可能会导致问题。在Internet Explorer中打开https://[servername]:4338/[servicename]/会发生什么?

答案 2 :(得分:0)

感谢empi的回复。 我找到了答案。 实际上在我们公司,我们通过“自动配置脚本”进行代理设置 并且取决于我们内部定位的网站,该脚本将指向我们正确的代理。 所以,从脚本我得到了正确的代理地址。 在我的.NET应用程序中,我添加了此代码 WebRequest.DefaultWebProxy = new WebProxy(“http://xx.xx.xx.xx:8080”); 并解决了这个问题 因此,WCF客户端未检测到自动脚本的设置。 这就是我运行Fiddler时工作的原因,因为Fiddler听取了http通信,并通过设置再次发送。