Вопрос по ms-office, scheduled-tasks, ms-word, windows-server-2008, interop – Word Interop не работает в запланированной задаче

8

В настоящее время я разрабатываю сценарий, который принимает документ Word, открывает его в Word, а затем распечатывает файл Word в формате PDF. Все отлично работает при запуске вручную на моей машине или на сервере. Проблема возникает, когда я пытаюсь запустить ее как запланированное задание.

Одним из требований является то, что это должно быть сделано ночью без какого-либо вмешательства. Когда я настроил для этого задачу по расписанию и установил параметры безопасности «Запускать только когда пользователь вошел в систему» & quot; все отлично работает Проблема в том, что это должно выполняться с кем-либо или без входа в систему. Если я задаю задачу «Выполнить независимо от того, вошел пользователь в систему или нет», сценарий завершится с ошибкой в следующей строке:

wordDoc = MSWord.Documents.Open(ref fileToConvert, ref refFalse, ref refTrue, 
                                ref RN, ref RN, ref RN, ref RN, ref RN,
                                ref RN, ref RN, ref RN, ref RN, ref RN,
                                ref RN, ref RN, ref RN);

MSWord.Documents.Open() работает, но возвращает ноль.

Эта задача выполняется в Windows Server 2008 с Office 2007.

Есть ли другой подход, который я должен принять для этого?

Так будет ли это работать, если вы не используете Server 2008? Steve Platz
На сервере Windows 2003 или XP, да. Не уверен насчет Vista. Gary McGill
У меня была точно такая же проблема, я потратил целую вечность, пытаясь ее решить, заглянул в разные тупики и, в конце концов, "решение" Я закончил с тем, чтобы не использовать Windows Server 2008. Если вы найдете решение для этого, я буду во всех ушах. Gary McGill

Ваш Ответ

2   ответа
4

что многие люди пытались сделать что-то близкое к тому, что вы пытаетесь, и потерпели неудачу. Существует много болтовни о невозможности запуска каких-либо офисных решений на основе взаимодействия в серверном режиме (без присмотра и т. Д.).

УвидетьВот а такжеВот

Я знаю, что это, вероятно, не тот ответ, который вы искали, но, тем не менее, он таков!

Хорошие ссылки и информация
Я искал любой ответ. Я не смог найти какую-либо информацию о том, что происходило, во множестве поисковых запросов Google, поэтому спасибо за ваш вклад. Я собираюсь дать ему еще несколько часов и, если это будет "решение" не опубликовано, я отмечу ваше как ответ. Steve Platz
22

dows Server 2008, даже если это нормально работает под Windows Server 2003. Проблема также возникает при вызове Open, хотя на самом деле возникает исключение, а не просто возвращение нулевого значения. В любом случае, вы можете попробовать это ...

Я пытался следовать советам, данным H Ogawa вэтот поток MSDNи, похоже, сработало. Это странно, но благодарит мистера Огаву за его обнаружение.

Краткое изложение «Ogawa Hack»: создайте папку рабочего стола для профиля системы, либо

C:\Windows\SysWOW64\config\systemprofile\Desktop, или же

C:\Windows\System32\config\systemprofile\Desktop

... в зависимости от того, есть ли у вас 64-битная Windows.

Кроме того, для папки требуется разрешение на запись для любого пользователя, который является "за рулем". Офис.

[Изменить: исправленный URL-адрес ссылки]

Да, это сработало и для меня ... Я боролся последние 5 часов, и создание этой папки помогло ...
Работает чудесно! Это избавило меня от тонны (дополнительной) головной боли с этим ... теперь давайте надеяться, что на самом деле ничто не помешает запустить Word из службы.
Это сработало для меня, но мне пришлось добавить пользователя в группу локальных администраторов и установить флажок «Запускать с наивысшими привилегиями». вариант.
Отличный хак, даже не знал, как это было идентифицировано. Работал как по волшебству :)
Спасибо за это. Я должен взглянуть, как только позволит время. Я отправлю ответ, если это работает или нет. Steve Platz

Похожие вопросы