2010-11-14 73 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

相关问题