0

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

服务的端点地址在端口 4338 上,并且通过 HTTPS,受 WS-Security 标准保护。

所以地址是这样的:

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

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

无法连接到 [servername]:4338 TCP 错误代码 10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 [servername]:4338

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

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

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

谢谢

4

3 回答 3

1

Fiddler 充当 Internet 代理服务器。一般来说,任何形式的症状:“它在我使用 Fiddler 时有效”意味着“它在有(不同的)代理服务器时有效”。

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

于 2010-08-12T19:24:21.807 回答
0

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

于 2010-08-12T19:15:03.363 回答
0

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

于 2010-08-12T19:24:48.520 回答