2010-05-06 3 views
1

저는 .NET 2.0에서 C#을 사용하여 3 일 동안 간단한 FTP 클라이언트를 작성하려고 시도했으며 이 누락되었습니다. ftpWebRequest 객체를 만들고 모든 속성을 설정합니다. "System.Net.WebException :FtpWebRequest.GetRequestStream() 메서드를 사용하여 스트림을 설정할 수없는 이유는 무엇입니까?

string uri = host + remoteFile; 
System.Net.FtpWebRequest ftp = (FtpWebRequest)(FtpWebRequest.Create(uri)); 
ftp.Credentials = new System.Net.NetworkCredential(username, password); 
ftp.KeepAlive = false; 
ftp.UseBinary = true; 
ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; 

하지만 스트림을 가져 갈 때, 실패 ... 여기

System.IO.Stream strm = ftp.GetRequestStream(); 

오류입니다 (501) : 원격 서버에서 오류를 반환 매개 변수 또는 인수에 구문 오류가 있습니다. "

이 메서드는 내가 쓸 필요가있는 스트림을 반환해야하며, 많은 예제가 정확히이 작업을 수행해야합니다. 내가 뭘 놓쳤는 지 모르겠다. 내 호스트는 다음과 같습니다 : "ftp://myhostname/"그리고 세 번 내 자격 증명을 확인했습니다.

도와주세요!

답변

0

ftp.UseBinary = true;은 서버에서 지원되지 않습니까?

+0

ftp.UseBinary = false로 시도해 본 결과 오류 메시지가 나타납니다. – donde

+0

@donde 나는 그런 오류에 대해서는 오래지만 보편적 인 디버깅 방법을 알려줄 것이다. 가서 WireShark (http://www.wireshark.org/download.html)를 다운로드 한 다음 활성화하고 ftp로 필터링하십시오. 그런 다음 앱이 실제로 보내는 내용을 살펴보고 사양과 비교하여 수정하십시오! – Andrey

0

당신은 누락 된 "/"호스트 후 :

string uri = host + "/" + remoteFile; 

과 같이한다 원격 파일 문자열 : file.txt 어떤 경로없이.

관련 문제