4

我有一份工作需要连接到两个文件共享并复制一些文件以供数据馈送。

源服务器在我们域的网络上,并且工作正常。然而,远程服务器让我窒息并抛出“找不到路径的一部分”错误。我应该添加目标服务器与源服务器位于不同的域中。

从我的 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 中使用凭据映射驱动器的任何建议?

编辑

我正在尝试使用从控制台应用程序调用的批处理文件,该文件在程序运行时映射驱动器。我会确定这在早上是否有效。

4

2 回答 2

1

我建议研究适当的文件传输协议,例如 FTP。

假设这是不可能的,请尝试使用 UNC 路径,例如\\servername\path\file.txt. 您仍然需要凭据,但假设运行应用程序的帐户具有这些权限,您应该没问题。鉴于您提到了一个 web.config 文件,我猜这将是一个 ASP.NET 应用程序,因此我指的是在 IIS 中运行应用程序池的帐户。请参阅http://learn.iis.net/page.aspx/624/application-pool-identities/

于 2012-07-26T14:03:11.983 回答
1

我最终做的是将驱动器映射到我的程序调用的批处理文件中。我只是启动一个NET USE命令并暂停几秒钟以完成映射。

看起来当用户注销时,映射驱动器周围没有上下文。

于 2012-08-01T12:18:03.283 回答