Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法建立连接,因为目标计算机在System.Net.Sockets.Socket主动拒绝了127.0.0.1:57240_C#_Sockets - Fatal编程技术网

C# 无法建立连接,因为目标计算机在System.Net.Sockets.Socket主动拒绝了127.0.0.1:57240

C# 无法建立连接,因为目标计算机在System.Net.Sockets.Socket主动拒绝了127.0.0.1:57240,c#,sockets,C#,Sockets,我一直在开发一个web服务和一个windows服务,我部署的web服务在另一台服务器上,我部署的windows服务在我自己的服务器上工作,所以我使用windows服务调用web服务。一切都很好,但几天后我收到了以下消息: System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made b

我一直在开发一个web服务和一个windows服务,我部署的web服务在另一台服务器上,我部署的windows服务在我自己的服务器上工作,所以我使用windows服务调用web服务。一切都很好,但几天后我收到了以下消息:

System.Net.WebException: Unable to connect to the remote server ---> 
System.Net.Sockets.SocketException: No connection could be made 
because the target machine actively refused it 127.0.0.1:57240
at 
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress 
socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4,Socket 
s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace -
-- at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
因为目标机器主动拒绝它127.0.0.1:57240

本例中的“目标机器”是运行失败代码的机器。不是远程机器。127.0.0.1是“localhost”的IP地址,您可以使用它让在同一台机器上运行的两个进程通过套接字相互通信。这并不罕见,例如,它可以是使用命名管道的更简单的替代方法


但当然,您希望它连接到另一台机器,一台实际上有应用程序监听的机器。您的程序配置有问题,它正在尝试连接到不存在的服务。对于这种情况是如何发生的,我们没有深入了解,您的问题缺少了有关您如何选择目标机器的所有详细信息。如果您选择它的名称,而不是IP地址,那么您的局域网上的命名服务就有点不正常。或者,当您从测试模式转到部署模式时,您只是忘记了更改配置。或者你放弃了尝试一些不起作用的东西,因为防火墙阻止了访问。

我认为,你需要在“internet选项”中检查代理设置。如果您使用的是代理/隐藏ip应用程序,则可能会出现此问题


在我的例子中,我更改了代理设置。

端口57240看起来像客户端的应用程序端口,您的服务器应用程序可能正在较低的端口上运行。看来客户端崩溃了,通信套接字关闭了。

您说您在不同的计算机上部署了web servec和windows服务。请注意,您的windows服务尝试连接到127.0.0.1,这是环回设备。这意味着Windows服务尝试连接到它正在运行的同一台机器,而不是web服务的机器。确保Windows服务正在使用运行web服务的计算机的IP地址……请您检查防火墙是否不是导致问题的原因。@mohd,谢谢您的回复。关于“您如何选择目标机器”这一点,我使用真实ip选择目标机器。注意:部署web服务后,一切正常,但几天前我收到了错误消息,目标机器拒绝了。。。