Domanda

Quando cerco il mio programma sulla mia macchina win2k8 funziona benissimo, ma sulla vittoria 2k3 mi dà questo errore che messaggio di errore

Ecco il codice che ha generato l'errore'

WebClient wc = new WebClient(); 
wc.DownloadFile("ftp://ftp.website.com/sample.zip");

c'è la parte strana. se ho disattivare il firewall sul server completamente. l'errore va via. ma ancora errori se aggiungo il programma all'elenco delle eccezioni e attivare il firewall.

avere cercare sul web per giorni, non riusciva a trovare alcuna soluzione.

È stato utile?

Soluzione

Si dovrebbe provare a utilizzare la modalità passiva per FTP. La classe WebClient non lo consente, ma FtpWebRequest fa.

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);
    }
}

Altri suggerimenti

Si prega di inviare l'eccezione completo, comprese le eventuali 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
}

Ho avuto un problema simile (senza ftp) e una soluzione diversa

L'ambiente di server di produzione era stata fatta in modo sicuro che il server non ha potuto raggiungere l'URL.

Test veloce è quello di utilizzare un browser sulla scatola e vedere se è possibile passare alla URL.

Spero che questo aiuta qualcuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top