c# - socket - No se pudo establecer conexión porque la máquina de destino la rechazó activamente 127.0.0.1
websocket asp.net mvc 5 (11)
Agregue un nuevo WebProxy () para la configuración de proxy, donde está creando una solicitud web.
Ejemplo: -
string url = "Your URL";
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
req.Proxy = new WebProxy();
System.Net.WebResponse resp = req.GetResponse();
Donde req.Proxy = new WebProxy () maneja la configuración del proxy y ayuda al código a funcionar bien.
Intento conectarme a un servicio web alojado en un servidor diferente utilizando la clase de solicitud de Web. El servicio web devuelve una cadena como una respuesta. Mientras lo hago me sale un error:
"System.Net.Sockets.SocketException: No se pudo establecer conexión porque la máquina de destino lo rechazó activamente"
System.Net.WebException: no se puede conectar al servidor remoto ---> System.Net.Sockets.SocketException: no se pudo establecer conexión porque la máquina de destino la rechazó activamente 127.0.0.1:14012 en System.Net.Sockets.Socket .DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) en System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress y dirección, ConnectSocketState State, IAsyncResult como en los Estados Unidos). trace --- en System.Net.HttpWebRequest.GetRequestStream (TransportContext & context). , String tripCode, String statusCode) en Limoallover.UpdateJobStatus (String Lat, String Lng, Int32 DriverID, Int32 nJobStatus, Int32 nJobId, String Company ID, String idTrip, String tripCode, String statusCode)
private HttpWebRequest CreateWebRequestUS(string url, string action)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Headers.Add("SOAPAction", action);
webRequest.ContentType = "text/xml;charset=/"utf-8/"";
webRequest.Accept = "text/xml";
webRequest.Method = "POST";
return webRequest;
}
private XmlDocument CreateSoapEnvelopeUS(string apiId, string apiKey, string idTrip, string tripCode, string statusCode)
{
XmlDocument soapEnvelop = new XmlDocument();
string xml = "<soap:Envelope xmlns:xsi=/"http://www.w3.org/2001/XMLSchema-instance/" xmlns:xsd=/"http://www.w3.org/2001/XMLSchema/" xmlns:soap=/"http://schemas.xmlsoap.org/soap/envelope//">";
xml = xml + @"<soap:Body>";
xml = xml + "<UpdateTripStatus xmlns=/"https://book.mylimobiz.com/api/">";
xml = xml + @"<apiId>" + apiId + "</apiId>";
xml = xml + @"<apiKey>" + apiKey + "</apiKey>";
xml = xml + @"<idTrip>" + idTrip + "</idTrip>";
xml = xml + @"<tripCode>" + tripCode + "</tripCode>";
xml = xml + @"<statusCode>" + statusCode + "</statusCode>";
xml = xml + @"</UpdateTripStatus>";
xml = xml + @"</soap:Body>";
xml = xml + @"</soap:Envelope>";
soapEnvelop.LoadXml(xml);
return soapEnvelop;
}
private static void InsertSoapEnvelopeIntoWebRequestUS(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest)
{
using (Stream stream = webRequest.GetRequestStream())
{
soapEnvelopeXml.Save(stream);
}
}
Después de seis días encuentro la respuesta que me vuelve loca! La respuesta es desactivar el proxy en el archivo web.config:
<system.net>
<defaultProxy>
<proxy usesystemdefault="False"/>
</defaultProxy>
</system.net>
El mensaje de excepción indica que está tratando de conectarse al mismo host (127.0.0.1), mientras que indica que su servidor se está ejecutando en un host diferente. Además de los errores obvios, como tener "localhost" en la url, o tal vez algunos querría verificar la configuración de su DNS.
El problema desapareció para mí cuando empecé Fiddler. Lo estaba usando en mi máquina antes de tener el problema. Probablemente algo con Fiddler siendo proxy.
Eliminar archivos temporales por ejecución>% temp%
Y Abrir VS2015 por ejecutar como administrador,
esto funciona para mi.
Hay un servidor de seguridad que bloquea la conexión o el proceso que aloja el servicio no se escucha en ese puerto. O está escuchando en un puerto diferente.
Si tiene transformaciones en el archivo de configuración , asegúrese de haber seleccionado la configuración correcta dentro de su perfil de publicación. (Publicación> Configuraciones> Configuración)
Si tiene esto mientras Fiddler se está ejecutando -> en Fiddler, vaya a ''Reglas'' y deshabilite ''Autenticar automáticamente'' y debería funcionar nuevamente.
Tenía el mismo problema, resultó que era WindowsFirewall bloqueando las conexiones. Intente desactivar WindowsFirewall por un tiempo para ver si ayuda y si el problema es abrir los puertos según sea necesario.
Tuve el mismo problema con un sitio que anteriormente funcionaba bien. Resolví el problema eliminando los archivos temporales de C:/WINDOWS/Microsoft.NET/Framework/v#.#.#####/Temporary ASP.NET Files/@proyectName/###CC##C/###C#CC
Tuve un problema similar al intentar ejecutar un HttpSelfHostServer basado en HttpSelfHostServer en Debug bajo mi VisualStudio 2013. Intenté todas las direcciones posibles (desactivar el firewall, deshabilitar IIS por completo para eliminar la posibilidad de que el puerto localhost sea tomado por algún otro servicio, etc.) .
Finalmente, lo que "hizo el truco" (resolvió el problema) fue volver a ejecutar VisualStudio 2013 como administrador .
Increíble.