【问题标题】:Process.Start not working with UNC path to FilezillaProcess.Start 不使用 Filezilla 的 UNC 路径
【发布时间】:2016-07-30 08:23:39
【问题描述】:

此代码曾经在安装它的 C 驱动器上运行。我们将其移至 UNC 路径 \share,现在它似乎没有重新加载配置文件。没有错误,而且 Filezilla 工作正常,因为我可以在这个 UNC 共享上连接和传输文件,但是从代码中我无法让它真正做它应该做的事情。我需要明智地做任何特殊的凭证吗?我的站点应用池的用户帐户与共享相同。

Process.Start("CMD.exe", "/C \"\\filezilla\\FileZilla Server.exe\" /reload-config");

更新

我在实际计算机上的命令提示符下运行了这一行,它完成了预期的工作。

另一个更新

var path = string.Format("/C \"{0}FileZilla Server.exe\" /reload-config", Config.Paths.FileZillaPath); // \\filezilla\
Process.Start("CMD.exe", path);
Logger.Debug("Path: " + path); // Path: /C "\\filezilla\FileZilla Server.exe" /reload-config

【问题讨论】:

    标签: c# azure command-line file-permissions unc


    【解决方案1】:

    UNC 路径中的第一对反斜杠未正确转义,将产生一个反斜杠。试试

    Process.Start("CMD.exe", "/C \"\\\\filezilla\\FileZilla Server.exe\" /reload-config");
    

    你可以在MSDN看到一个例子

    字符串 g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt

    字符串 h = @"\\server\share\file.txt"; // \\server\share\file.txt

    【讨论】:

    • 新的更新就在上面吗?路径吐槽/C "\\filezilla\FileZilla Server.exe" /reload-config
    • 是的,看起来是正确的。它仍然没有运行吗?如果没有,请打开命令窗口并运行 CMD.exe /C "\\filezilla\FileZilla Server.exe" /reload-config 以查看是否有任何错误。 (我相信您已经这样做了,但只需检查语法是否匹配)。
    【解决方案2】:

    我做过类似的事情,但像这样......

     Process reloadConfig = new Process();
     reloadConfig.StartInfo.FileName = @"\\MachineName\FileZilla Server\FileZilla Server.exe\";
     reloadConfig.StartInfo.Arguments = @"/reload-config";
     reloadConfig.Start();
    

    这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-16
      • 2017-07-28
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多