문제

Win2k8 시스템에서 내 프로그램을 시도하면 잘 실행되지만 WIN 2K3에서는 오류 오류 메시지를 제공합니다.

오류를 생성하는 코드는 다음과 같습니다

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

이상한 부분이 있습니다. 서버에서 방화벽을 완전히 비활성화하면 오류가 사라집니다. 그러나 프로그램을 예외 목록에 추가하고 방화벽을 켜면 여전히 오류가 발생합니다.

며칠 동안 웹을 검색하고 해결책을 찾을 수 없습니다.

도움이 되었습니까?

해결책

FTP에 수동 모드를 사용해야합니다. WebClient 클래스는이를 허용하지 않지만 ftpwebrequest.

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

다른 팁

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
}

비슷한 문제 (FTP 없음)와 다른 솔루션이있었습니다.

프로덕션 서버 환경은 서버가 URL에 도달 할 수 없도록 안전하게 만들어졌습니다.

빠른 테스트는 상자에 브라우저를 사용하고 URL로 이동할 수 있는지 확인하는 것입니다.

이것이 누군가를 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top