c# - 将文件从一台服务器复制到另一台服务器时设备未准备好

标签 c# asp.net device

我在这里做错了什么?

我已经检查了变量,它们是应该的,所以没有问题。

我在这里遗漏了什么吗?为什么我会收到“设备未就绪”异常?

代码-

if (ddlPublisherServer.Text != ddlSubscriberServer.Text)
{
   try
   {
       if (File.Exists("\\\\" + ddlSubscriberServer.Text + "\\SQLServerBackups\\" + txtSubscriberDatabaseName.Text + ".bak"))
       {
           File.Delete("\\\\" + ddlSubscriberServer.Text + "\\SQLServerBackups\\" + txtSubscriberDatabaseName.Text + ".bak");
       }

       File.Copy(@"D:\SQLServerBackups\" + txtSubscriberDatabaseName.Text, "\\\\" + ddlSubscriberServer.Text + "\\SQLServerBackups\\" + txtSubscriberDatabaseName.Text + ".bak");
       }
       catch (Exception ex)
       {
            ClientScript.RegisterStartupScript(GetType(), "Error!", "alert('" + ex.Message + "');", true);
            Logger.LogError(ex.Source, ex.TargetSite.ToString(), ex.Message);
            return;
       }
   }

最佳答案

问题是您正在访问未映射的网络位置。访问网络位置时,您需要对其进行映射(在某些情况下,如果您有权限,它会自动发生。但如果您没有权限,则必须自己完成)。您有几个选择:

  1. 使用映射的网络驱动器并确保其始终已映射(例如使用组策略或启动脚本)
  2. 使用 Process.Start 运行“net use”命令(打开 cmd,输入“net use”并查看您需要提供的内容)。例如: Process.Start("c:\\windows\\system32\\net.exe", "use\\\\servername\\location/user:domain\\用户名密码");
  3. 在尝试访问网络位置之前,在代码中使用模拟来模拟具有足够权限的用户。

关于c# - 将文件从一台服务器复制到另一台服务器时设备未准备好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730935/

相关文章:

javascript - OnClick 找不到我正在调用的子系统

android - 每次运行 Android 应用程序时都必须选择设备的替代方案?

ios - 如何在真实的ios设备上运行带有热重载的react-native应用程序?

BASH如何在脚本终止时执行命令?

c# - 寻找无边 map 的路径算法

c# - 在 SaveChanges 重写中实现历史跟踪

asp.net - 避免编码到我的 ASP.NET 应用程序中以使其在共享主机上的中等信任下运行的最常见、典型的事情是什么?

Asp.net "background service"在 IIS 站点停止/启动后监听 MSMQ 不工作

c# - LINQ 查询以识别系列中的片段

c# - 如何获取缓存项的到期日期?