2009-10-01 2 views
3

안녕하세요 저는 WebRequest의 비동기 멤버를 사용하여 IIS FTP 서버에 파일을 업로드하고 있습니다.FTPWebRequest 업로드 파일은 두 개의 파일 만 업로드합니다!

두 파일을 업로드 할 수 있습니다. 그러나 세 번째 파일의 BeginGetResponse는 결코 내 콜 백 루틴을 호출하지 않습니다!

아이디어를 환영합니다.

덕분에,

답변

1

몇 가지 아이디어 :

  • 동 기적으로 요청을하고 문제가 사라지는 지 확인. 세 번째 파일을 자세히보고 싶다면
  • 콜백 처리기에서 FtpWebRequest.EndGetResponse()을 명시 적으로 호출하고 응답시 Close()를 호출해야합니다. 그렇지 않으면 연결을 열어 두거나 클라이언트, 서버 또는 프록시 연결 제한에 부딪 힐 수 있습니다.
  • 이미 이러한 작업을 수행중인 경우 Network Monitor 3.3과 같은 네트워크 스니퍼를 설치하고 실제로 무슨 일이 일어나는지 확인하십시오. 거기에 오류가 있는지 확인할 수 있습니다.
  • 오류가 표시되면 추적하십시오. 세 번째 요청이 실제로 전선을 통해 지나가는 것을 본 적이 없다면 클라이언트 연결 제한을 범인으로 간주하십시오. 세 번째 요청이 표시되지만 회신을받지 못한 경우 M 초 이내에 동일한 클라이언트의 N 요청을 조절하는 것과 같은 서버 문제를 살펴보고 각 요청 후에 지연을 시도하여 피할 수 있는지 확인하십시오.
1

답장을 보내 주셔서 감사합니다. ServicePoint.Connection.Limit

이 값을 4로 늘리고 동기 메서드를 사용하기 시작했습니다. 내 FTP 물건이 이제 파일을 업로드합니다.

그러나 파일이 서버에 그대로 도달하는지 확인할 수는 있지만 대부분의 경우 스트림의 Close() 메서드는 연결이 종료되었다는 웹 예외를 throw합니다.

나는 KeepAlive를 시도했지만 전송의 약 10 % (매우 거친)에 대한 예외 만 줄였습니다.

보낸 바이트 수 == 파일 총 바이트 수 있지만 나는 신사 않습니다 않는 오류를 무시합니다.

나는 이걸 어떻게 처리해야하는지 잘 모르겠다. 나는 인터넷 검색을하면서 보냈지 만 비슷한 문제는 있지만 진짜 대답은없는 사람들을 찾았다.

당분간 내 프로젝트의 나머지 부분은 시간이 짧기 때문에 계속해야합니다. 기본 연결이 닫히는 것을 방지하는 방법에 대한 아이디어가 있다면 (나는 그것이 제어 채널이라고 추측합니다) 저는 당신의 통찰력을 고맙게 생각합니다.

존.

관련 문제