2012-03-27 73 views
0

我一直在一个网站上工作,让客户sftp数据文件给我们(使用SharpSSH.dll)我的解决方案在我的开发机器上工作正常,但只要我移动它到生产服务器我无法上传。与VB.NET SFTP - 通过服务器上传问题

我知道这个问题是因为我的代码试图在服务器上拿起一个文件,当它显然不存在,所以我需要一些指针来解决这个问题的最佳方式 - 即如何调整我的允许从客户机上传sftp的代码?

该计划基本上是(并且我不完全确定,我正在以这种正确的方式进行)使用我的Web服务器作为中介,以便客户端登录并将文件分配给另一台服务器。咨询和指针都非常欢迎 - 下面请看代码:

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控件如何在这里工作这很可能是问题的症结所在

回答

0

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

希望这会有所帮助!

+0

嗨,感谢您回复我 - 我只在本地机器上测试过我的代码,所以测试上传文件与我的代码存在于同一台机器上。问题是服务器无法在客户端机器上看到上传文件,所以我需要找出如何(暂时)将此文件安全地移动到Web服务器,然后转移到我的SFTP服务器(希望是有道理的!)。 – allanmayberry88 2012-03-27 16:11:51