【发布时间】:2014-11-11 13:24:33
【问题描述】:
我想使用 WebClient.DownloadString 方法从https://localhost:3000/ 下载内容,但此调用以SocketException: No connection could be made because the target machine actively refused it 结束,尽管该地址可通过浏览器访问。
我发现,当我替换为127.0.0.1(所以地址是https://127.0.0.1:3000)时,该请求是成功的。
如何修复它以便我可以使用 localhost 地址(由于 SSL 证书,它需要是 localhost)?
【问题讨论】:
-
“主动拒绝”表示当您尝试连接时主机发送了重置而不是确认。因此,这在您的代码中不是问题。有防火墙阻止了连接,或者托管服务的进程没有在该端口上侦听,这可能是因为它根本没有运行,或者因为它正在侦听不同的端口。
-
感谢您的回答。正如我在问题中所写,服务正在运行并且可以通过 127.0.0.1 上的 Web 浏览器和本地主机地址访问,但是 WebClient 本地主机地址有问题,127.0.0.1 很好,所以我认为,防火墙在这里不是问题: )
-
您确定 localhost 在您的机器上解析为 127.0.0.1(而不是 ::1)吗?你能telnet到localhost的3000端口吗?
-
要么监听 ::1,要么在你的 hosts 文件中将 localhost 定义为仅 127.0.0.1,这样它就不会尝试将 localhost 解释为 ::1。
标签: c# ssl webclient self-signed