2012-10-02 2 views
4

현재 내 프로젝트 중 하나에서 정말 이상한 문제가 있습니다.시스템 IOException 샤프 SSH로 스트림 읽기 끝

FTP마다 파일을 업로드하기 위해 Tamir Gal의 Sharp SSH 라이브러리를 코드에 구현했습니다. 디버그 모드에서 코드를 실행하면 모든 것이 정상적으로 작동합니다. 내가 솔루션을 빌드하고 내장 버전으로 시도 할 때, 나는 System.IO.IOException를 얻을 : 데이터 스트림 (! 명백한 안녕하세요 캡틴 :))에 문제가 있으므로,이처럼

Tamir.SharpSsh.jsch.JSchException: Session.connect: System.IO.IOException: End of IO Stream Read at Tamir.SharpSsh.jsch.IO.getByte(Byte[] array, Int32 begin, Int32 length) 
at Tamir.SharpSsh.jsch.Session.read(Buffer buf) 
at Tamir.SharpSsh.jsch.User.Auth.start(Session session) 
at Tamir.SharpSsh.jsch.UserAuthNone.start(Session session) 
at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout) 
at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout) 
at Tamir.SharpSsh.jsch.SshBase.ConnectSession(Int32 tcpPort) 
at Tamir.SharpSsh.jsch.SshBase.Connect(Int32 tcpPort) 
at Tamir.SharpSsh.jsch.SshBase.Connect() 

같습니다 본 프로그램은 Connect Method를 마치기 위해 설립조차하지 않습니다. 나는 디버깅하는 동안 모든 것이 왜 작동하는지 알지 못한다. dll은 빌드 프로세스에서 올바르게 복사됩니다.

코드는 다음과 같습니다

sftpClient = new Sftp(this.ftpHost, this.ftpUser, this.ftpPassword); 
sftpClient.Connect(); 

모든 변수가 올바른 값이 나는에서는 Filezilla 같은 클라이언트를 사용하여 SFTP 서버에 연결할 수 있습니다.

누구나 내게 힌트를 줄 수 있거나 비슷한 문제가 있다면 모든 의견에 대해 매우 감사 할 것입니다.

미리 감사드립니다. 좋은 하루 되세요.

내 동료가 바로 해결책을 찾을
+0

이 문제가 해결 된 후 2008r2 서버에서 sharpsshtest.exe를 사용하여 SSH를 테스트해야했습니다. 해당 dll 또는 그와 같은 것을 등록해야합니다. –

답변

19

:

  • Org.Mentalis.Security.dll
  • Tamir.SharpSSH.dll
  • DiffieHellman.dll
  • : SharpSSH에서

    을 당신은 3 DLL이 있습니다

코드에서 Org.Mentalis.Security.dll을 참조하지 않아서 d를 복사하는 것을 완전히 잊었습니다. 빌드 프로세스 uring. 이 때문에 SharpSSH가 중계하는 전체 보안 레이어에 액세스 할 수 없으므로 오류가 발생했습니다.

이 스레드가 다른 약간의 멍청한 사람들을 도울 수 있기를 바랍니다. :)

+2

나는 SharpSSH를 업데이트하는 작업을 해왔다. 한 DLL (https://bitbucket.org/mattgwagner/sharpssh)에 모든 것을 포함하는 버전이 있습니다. 또한 Codeplex의 SSH.net을 훨씬 더 잘 관리하고 유지 관리하는 SSH 라이브러리를 살펴볼 것을 적극 권장합니다. – MattGWagner

+0

+1 나를 많이 도왔습니다! 나는 같은 문제에 직면했다. –

관련 문제