我在使用WCF客户端的.NET应用程序中使用Web服务。
端点的服务地址通过端口4338,它通过HTTPS,使用WS-Security标准保护。
所以地址是这样的:
https://[servername]:4338/[servicename]/
我只是在运行应用程序时无法与服务进行通信。 它给了我以下错误:
无法连接到[servername]:4338 TCP错误代码10060:连接 尝试失败,因为连接 一方没有正确回应 一段时间,或已建立 连接失败,因为连接 主持人没有回复 [服务器]:4338
但是当我运行Fiddler调查http通信时,应用程序开始工作,我将能够与服务进行通信。
同样,我想补充一点,我在托管第一个服务的同一个Web服务器上有不同的服务,第二个服务的地址托管在端口8080上,我能够与WCF客户端进行通信(没有跑Fiddler)。
所以,我用谷歌搜索,发现它可能与代理设置有关。你知道问题是什么,我该如何解决呢?
由于
答案 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通信,并通过设置再次发送。