我的工作需要连接到两个文件共享并复制一些文件以供数据馈送。
源服务器在我们域的网络上,并且工作正常。然而,远程服务器让我窒息并抛出“无法找到路径的一部分”错误。我应该添加目标服务器与我的源服务器位于不同的域中。
从我的 app.config 文件中读取源路径和目标路径。
我认为持续映射驱动器会奏效,但由于这是一项计划任务,所以似乎行不通。我考虑过使用 NET USE,但那似乎不喜欢使用用户名和密码。
真正奇怪的是 - 如果我在登录机器时双击作业,它会成功运行。
示例代码:
DirectoryInfo di = new DirectoryInfo(srcPath);
try
{
FileInfo[] files = di.GetFiles();
foreach (FileInfo fi in files)
{
if(!(fi.Name.Contains("_desc")))
{
Console.WriteLine(fi.Name + System.Environment.NewLine);
File.Copy(fi.FullName, destPath + fi.Name, true);
fi.Delete();
}
}
}
显然这不像复制文件那么简单。关于在 C# 4.0 中使用凭据映射驱动器有什么建议吗?
编辑
我正在尝试使用从控制台应用程序调用的批处理文件,该文件在程序运行时映射驱动器。我会确定这在早上是否有效。
最佳答案
我建议研究合适的文件传输协议(protocol),例如 FTP。
假设这是不可能的,请尝试使用像 \\servername\path\file.txt
这样的 UNC 路径。您仍然需要凭据,但假设运行应用程序的帐户具有这些权限,您应该没问题。鉴于您提到了一个 web.config 文件,我猜那将是一个 ASP.NET 应用程序,因此我指的是在 IIS 中运行应用程序池的帐户。参见 http://learn.iis.net/page.aspx/624/application-pool-identities/
关于c# - 在用户未登录时将文件复制到映射的驱动器(计划任务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670777/