使用VB.NET的SFTP - 通过服务器问题上传

时间:2012-03-27 15:46:43

标签: asp.net vb.net sftp

我一直在网站上工作,允许客户端向我们发送数据文件(使用SharpSSH.dll)我的解决方案在我的开发机器上工作正常,但是一旦我将其移动到生产服务器,我就无法上传。

我知道问题是因为我的代码试图在服务器上找到一个显然不存在的文件,所以我需要一些关于解决这个问题的最佳方法的指针 - 即如何调整我的代码允许从客户端计算机上传sftp?

该计划基本上是(并且我并不完全确定我正在以正确的方式进行此操作)使用我的Web服务器作为中间人,因此客户端登录并将文件sftps到另一台服务器。建议和指示非常受欢迎 - 请参阅以下代码:

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凭据并确保从我的Web服务器访问sftp服务器是有效且有效的。我的日志文件给出了以下异常消息:

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

我想我可能会误解FileUpload控件如何在这里工作,这可能是问题的关键

1 个答案:

答案 0 :(得分:0)

我不确定究竟是什么问题,但我会说,如果你已经测试了你的代码,并且很高兴它有效,那么这不是第一个开始寻找问题的地方。我将从FTP服务器的配置开始。

希望这有帮助!