2016-04-08 2 views
3

Этот код использовался для работы ниже на диске C, где он был установлен. Мы переместили его в UNC-путь \ share, и теперь он, похоже, не перезагружает конфигурационный файл. Ошибок нет, и Filezilla отлично работает, так как я могу подключать и передавать файлы на этом UNC-ресурсе, но из кода я не могу это сделать, чтобы на самом деле делать то, что, как предполагается, больше. Нужно ли мне делать какие-то особые полномочия? Моя учетная запись для пула приложений на сайте совпадает с общим ресурсом.Process.Start не работает с UNC-пути к Filezilla

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

Update

Я запустил эту строку из командной строки на фактическом компьютере, и он делает то, предположим.

Другой Update

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 

ответ

10

Ваша первая пара слеша пути UNC не экранированы и приведет к одной обратной косой черты. Попробуйте

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

Вы можете увидеть пример на MSDN

струны = "\\\\ сервер \\ \\ file.txt доля"; // \\ server \ share \ file.txt

строка h = @ "\\ server \ share \ file.txt"; // \\ сервер \ доля \ file.txt

+0

Это новое обновление прямо выше? Путь выкидывает '/ C '\\ filezilla \ FileZilla Server.exe"/reload-config' –

+0

Да, это выглядит правильно. Он все еще не работает? Если нет, откройте командное окно и запустите «CMD.exe/C» \\ filezilla \ FileZilla Server.exe »/ reload-config', чтобы узнать, есть ли у вас какие-либо ошибки. (Я считаю, что вы уже это сделали, но просто проверьте синтаксические соответствия). – Tone

+0

Как я уже сказал, я сделал это уже. –

3

я сделал что-то подобное, но, как это ...

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

и это работает для меня.