У меня есть служба Windows, которая должна запустить процесс для отправки файла на принтер (я нашел это решение там https://stackoverflow.com/a/4875755/1228738). Я делаю это с помощью Process.Start (). Моя проблема в том, что ничегопроисходит.
Служба фактически установлена на моей машине разработчика (win7, x64). Я пытался установить ее как ЛОКАЛЬНАЯ СИСТЕМА, СЕТЕВАЯ СЛУЖБА, ЛОКАЛЬНАЯ СЛУЖБА каждый раз с одним и тем же результатом.
Iпробовал этот способ запуска моего процесса:
Process p = new Process();
p.StartInfo.FileName = "C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\Foxit Reader.exe";
p.StartInfo.Arguments = "-p myFile.pdf";
p.Start();
и
Process.Start("C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\Foxit Reader.exe", "-p myFile.pdf");
, а также
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\Foxit Reader.exe";
startInfo.Arguments = "-p myFile.pdf";
Process.Start(startInfo);
Когда я выполняю тот же код в приложении winform, всеработает нормально, файл отправляется на принтер. Но в Windows Service ничего не происходит.
Я видел этот пост https://stackoverflow.com/a/6271309/1228738,, который объясняет, почему я не вижу пользовательский интерфейс, это нормально, я надеваюВ любом случае, пользовательский интерфейс не имеет. Но, как сказано в разделе комментариев, процесс без ввода пользователя должен быть в порядке. Запускаемый мной процесс не требует ввода пользователя.
Единственное, что я могу думатьпрямо сейчас, это потому чтоиспользование изоляции сеанса (https://stackoverflow.com/a/5063750/1228738), служба не может найти установленные принтеры ... Может ли это быть так?Если да, то есть предложение, как обойти это?А если нет, есть идеи, что не так?
Спасибо!
РЕДАКТИРОВАТЬ # 1
Я попытался запустить службу с моей учетной записью, и она работает, так что, думаю, мои опасения подтвердились... у пользователей LOCAL SYSTEM и NETWORK SERVICE нет установленных принтеров.
Так что я немного уточню свой вопрос.Есть ли у этой учетной записи способ доступа к принтерам, установленным на компьютере?
РЕДАКТИРОВАТЬ # 2
Мы наконец решили, что для запуска этой службы будет создан пользователь, и в этих учетных записях мы установим принтер для печати.
Полагаю, этот вопрос сейчас можно закрыть.Спасибо всем за помощь.