2009-04-16 6 views
2

C#/VS2005에 프로덕션 데이터베이스를 백업하고 압축 한 다음 원격 서버로 전송하는 프로그램을 작성하고 있습니다. 간단한 FTP 사이트를 원격 서버에 설정했습니다.C#으로 asp.net을 통해 대용량 파일을 원격 서버로 전송하는 다양한 방법

문제는 약 절반 파일 만 전송 (~ 500-600메가바이트)이다 프로그램 예외가 발생합니다 :

은 "기존 연결은 원격 호스트에 의해 강제로 끊겼습니다" 나는 기본적으로 Jaimon 매튜에 의해 작성, 절단 여기에서 붙여 넣기 된 사용하고 코드를 사용하여 소켓 : I가 할 수있는 일이 같은

http://www.csharphelp.com/archives/archive9.html

나는 문제를 연구하고이 보이지 않는다 연결이 닫히는 것을 막을 수있는 유일한 방법은 소켓의 '비동기'메서드를 사용하는 것입니다.

나는 이것을 찾고 어떤 샘플 코드도 찾을 수 없으며, 수행하려고하는이 간단한 작업이 그렇게 어렵다는 것을 증명할 수 없다.

대용량 (~ 1.2GB) 로컬 파일을 원격 FTP 사이트로 전송하는 간단한 방법이 있습니다. 원격 호스트에서 연결을 닫으면 실패하지 않습니다 (다시 연결해야 할 것이라고 추측합니다). 전송을 재개하십시오)?

내가 상상 한 시간이 얼마나되는지 알면 상사가 나를 죽일 것입니다. 그리고 전날 원격 서버에서 백업하지 않았습니다.

나는 .NET 프로그램 (모든 시스템은 현재 거대한 Rube Goldberg 머신 임)에서 모든 작업을 수행하는 것을 선호하지만, 빠르고 쉬운 솔루션이 필요합니다.

public void upload(string fileName,Boolean resume) 

이 작동하지 진정한 = 이력서와 그 함수를 호출 하는가 :

감사합니다,

+0

일부 FTP 서버는 이력서 기능을 지원합니다. 아마도 도움이 될까요? – Lucero

답변

1

스티브는 연결 코드는 재개 업로드를 지원하기 위해 나타납니다?

+0

나는 시도하고 알아낼거야 ... – Steve

+0

나는이 일찍 노력하지 말고 바보 같은 느낌이 드는 것 같아 ... 나는 연결 방법이 닫혀있을 경우 종료 할 수 있도록 업로드 방법에 몇 가지 코드를 추가하고 변경해야했다. 그것을 작동시키기위한 몇 가지 다른 것들. 고맙습니다!!! – Steve

2

여기 FTP를 수행하는 방법은 whole bunch of C# examples입니다. 특히 Restart/Retry FTP Upload 예제를 살펴보십시오.

+0

답변 해 주셔서 감사합니다. 나는 그것도 보았지만 그 코드 샘플은 라이센스가 필요한 구성 요소를 사용하는 것처럼 보였습니다. 라이센스를 구입할 필요가없는 것을 찾기를 희망했습니다. 나는 이것이 할 사소한 일이라고 생각했다. – Steve

0

HTTP를 통해 업로드하기 위해 BITS (Background Intelligent Transfer Service)를 사용하고 있습니다. 플랫폼 별 솔루션이지만 잘 작동하며 사용하기 쉽습니다. 이는 Windows Update에서 사용되는 것과 동일한 메커니즘입니다.