2010-11-14 78 views
4

我必須從服務器複製某些文件到另一個,我想用File.Copy但如何指定一個有文件的位置?並且還可以有從和到的密碼標識。從服務器複製文件到另一個

任何想法?

+0

如何在兩個服務器進行通信?他們在同一個網絡上嗎? AD樹? – Oded 2010-11-14 15:49:22

+0

它們位於同一網絡上 – 2010-11-14 15:52:15

+0

在源服務器和目標服務器上是否使用相同的帳戶? – 2010-11-14 15:53:21

回答

4

如果這兩個服務器位於同一本地網絡並且您有適當的訪問權限,那麼您可以通過使用File.Copy方法並傳遞您通常用於訪問Windows資源管理器中的網絡共享的任何路徑(這是可能是UNC路徑,如\\TheRemoteServer\SharedFolder\MyFiles)。如果您可以在資源管理器中複製文件,那麼File.Copy方法也可能成功。

但是,如果你需要爲遠程服務器上的不同的用戶有適當的權限將文件複製到身份驗證,事情變得更加複雜,因爲那裏是這個不容易的.NET API。您可以查看this answer to another question。本質上,它會以不同的用戶身份登錄到遠程機器。登錄後,您可以正常執行文件複製。

另請參閱此問題:Accessing a Shared File (UNC) From a Remote, Non-Trusted Domain With Credentials -chiefly建議使用WNetUseConnection連接到具有驗證的遠程計算機上的UNC路徑的答案。最後,作爲一種預防措施,我覺得我必須指出,每當你開始做網絡文件拷貝時,在你盲目地開始複製之前,你需要非常小心地檢查網絡路徑的可用性(遠程服務器可能關閉,本地機器可能失去了與網絡的連接等)。您可能還需要考慮處理網絡操作超時的情況。

0

您可能需要使用FTP或SSH作爲傳輸方法做這樣的事情。您只需在服務器端設置正確的服務即可使用這些通信方法。

然後,你需要的是講這些協議NET庫。這裏是一個:

http://www.weonlydo.com/FtpDLX.NET/ftp-sftp-ssl-net.asp

它的工作原理,但我是不是所有的印象深刻的是由於種種原因。我相信那裏有更多。

而且,是的,每個這樣的協議將挑戰連接系統的用戶名/密碼。

+4

如果系統位於同一個Windows網絡上,FTP會過度殺毒。 – 2010-11-14 16:47:47

相關問題