La conexión subyacente se cerró: Se ha producido un error inesperado en un recibir
-
22-08-2019 - |
Pregunta
Cuando intento mi programa en mi máquina Win2k8 funciona muy bien, pero el triunfo 2k3 me da este error ese mensaje de error
Este es el código que genera el error'
WebClient wc = new WebClient();
wc.DownloadFile("ftp://ftp.website.com/sample.zip");
está la parte extraña. si se deshabilita el firewall en el servidor por completo. el error desaparece. pero aún así los errores si añado el programa a la lista de excepciones y encienda el servidor de seguridad.
tiene buscar en la web para los días, no pudo encontrar ninguna solución.
Solución
Usted debe tratar de usar el modo pasivo para FTP. La clase WebClient no permite eso, pero FtpWebRequest hace.
FtpWebRequest request = WebRequest.Create("ftp://ftp.website.com/sample.zip") as FtpWebRequest;
request.UsePassive = true;
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream ftpStream = response.GetResponse();
int bufferSize = 8192;
byte[] buffer = new byte[bufferSize];
using (FileStream fileStream = new FileStream("localfile.zip", FileMode.Create, FileAccess.Write))
{
int nBytes;
while((nBytes = ftpStream.Read(buffer, 0, bufferSize) > 0)
{
fileStream.Write(buffer, 0, nBytes);
}
}
Otros consejos
Por favor, publique la excepción completa, incluyendo cualquier InnerException:
try
{
WebClient wc = new WebClient();
wc.DownloadFile("ftp://ftp.website.com/sample.zip");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString()); // Or Debug.Trace, or whatever
throw; // As if the catch were not present
}
I tenía un problema similar (sin ftp) y una solución diferente
El entorno de servidor de producción se había hecho tan seguro de que el servidor no pudo llegar a la URL.
Prueba rápida es utilizar un navegador en la caja y ver si se puede navegar a la URL.
Espero que esto ayude a alguien.