Pergunta

Quando tento o meu programa em minha máquina Win2k8 ele funciona muito bem, mas no Win 2K3 dá-me este erro mensagem de erro

aqui está o código que' gerando o erro

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

lá é a parte estranha. se eu desativar o firewall no servidor completamente. o erro desaparece. mas ainda erros se eu adicionar o programa à lista de excepções e ativar o firewall.

tem pesquisar na web por dias, não conseguia encontrar qualquer solução.

Foi útil?

Solução

Você deve tentar usar o modo passivo para FTP. A classe WebClient não permite isso, mas FtpWebRequest faz.

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

Outras dicas

Por favor, poste a exceção completo, incluindo qualquer 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
}

Eu tive um problema semelhante (sem ftp) e uma solução diferente

O ambiente de servidor de produção tinha sido feita de modo garantir que o servidor não poderia alcançar o URL.

Teste rápido é usar um navegador na caixa e ver se você pode navegar para o URL.

Espero que isso ajude alguém.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top