기본 연결이 닫혔습니다. 수신에서 예기치 않은 오류가 발생했습니다.
-
22-08-2019 - |
문제
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로 이동할 수 있는지 확인하는 것입니다.
이것이 누군가를 돕기를 바랍니다.
제휴하지 않습니다 StackOverflow