2012-03-27 74 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