SFTP с VB.NET - загрузка через сервер - PullRequest
0 голосов
/ 27 марта 2012

Я работал над сайтом, чтобы клиенты могли отправлять нам файлы данных sftp (используя SharpSSH.dll). Мое решение отлично работает на моей машине для разработки, но как только я перевожу его на рабочий сервер, я не могу загрузить.

Я знаю, что проблема в том, что мой код пытается забрать файл на сервере, когда его там явно не существует, поэтому мне нужны некоторые указатели, чтобы решить эту проблему наилучшим образом - то есть, как мне настроить мой код разрешить загрузку sftp с клиентского компьютера?

План в основном состоит в том, чтобы (и я не совсем уверен, что я поступаю правильно) использовать мой веб-сервер в качестве посредника, чтобы клиент входил в систему и передавал файл на другой сервер. Советы и указатели очень приветствуются - пожалуйста, смотрите код ниже:

transfer = New SecureFileTransfer("IP", "PORT", "NAME", "PASSWORD")
    If transfer.putFile(FileUpload.PostedFile.FileName, company & "/" & filename) = True Then
        lblMsg.Text = "File upload complete!"

        'write data file details to table
        writeAudit()

        'check which account manager to alert and send email notification
        emailNotify()
    Else
        lblMsg.Text = "File upload has failed - please try again..."
        Exit Sub
    End If



Public Sub New(ByVal hostname As String, ByVal port As Integer, ByVal username As String, ByVal password As String)
    Me._hostname = hostname
    Me._port = port
    Me._username = username
    Me._password = password
End Sub



Public Function putFile(ByVal localFile As String, ByVal remotePath As String) As Boolean
    Try
        transfer = New Sftp(Me._hostname, Me._username, Me._password)
        transfer.Connect(Me._port)
        transfer.Put(localFile, remotePath)
        transfer.Close()
        Return True
    Catch ex As Exception

        Dim objWriter As New System.IO.StreamWriter("C:\logfile.txt")
        objWriter.Write(ex.Message)
        objWriter.Close()

        Return False
    End Try
End Function

Я проверил свои учетные данные sftp и убедился, что доступ с моего веб-сервера к серверу sftp действителен и работает. Мой файл журнала дает мне следующее сообщение об исключении:

Could not find file 'c:\windows\system32\inetsrv\x.txt'.

Я думаю, что, возможно, неправильно понимаю, как здесь работает элемент управления FileUpload, что вполне может быть основной проблемой

1 Ответ

0 голосов
/ 27 марта 2012

Я не уверен, в чем именно заключается проблема, но я бы сказал, что если вы проверили свой код и довольны тем, что он работает, то это не первое место, где можно начать искать проблемы.Я бы начал с настройки FTP-сервера.

Надеюсь, это поможет!

...