У меня есть C#, который будет запускаться в службе Windows. Я пытаюсь использовать классы Process и ProcessStartInfo для запуска исполняемого файла. Если исполняемый файл находится на локальном диске, нет проблем. Однако мне нужно запустить исполняемый файл на общем диске. Я попытался использовать нотацию UNC (//machine_name/share_name/directory/runme.exe), но процесс, похоже, зависает. Служба и общий диск находятся в Windows XP. Кто-нибудь раньше занимался этой проблемой?Попытка получить службу Windows для запуска исполняемого файла на общем диске
ответ
Учетная запись, на которой работает ваша служба, скорее всего, не имеет разрешения на доступ к общему диску. Попробуйте настроить его для запуска в качестве пользователя с разрешением на доступ к сети через апплет служб. Щелкните правой кнопкой мыши на службе, выберите свойства и установите учетную запись на вкладке входа.
В какой учетной записи работает служба?
LocalSystem разрешает доступ только к локальной файловой системе. Если вы хотите получить доступ к сетевому ресурсу, вам нужно будет запустить службу в качестве домена или пользователя сети.
Посмотрите на это: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=471168&SiteID=1
Это должно помочь.
Если приложение на общем диске является .Net-приложением, убедитесь, что оно обладает достаточным доверием.
Просто, чтобы прояснить вашу нотацию UNC ... вы действительно имеете в виду «//machine_name/share_name/directory/runme.exe» или «\\ имя_компьютера \ share_name \ directory \ runme.exe»? – Kev 2008-09-25 17:50:17