Есть ли способ проверить, зависает ли Microsoft Office (например, Word, Excel) при использовании Office Automation? Кроме того, если процесс висит, есть ли способ его прекратить?Проверять на предмет зависания Office при использовании Office Automation
ответ
Позвольте мне сказать, что я не рекомендую делать это в службе на сервере, но я сделаю все возможное, чтобы ответить на вопросы.
Выполнение как обслуживание затрудняет очистку. Например, с тем, что у вас работает как служба, выжить, убивая подвешенное слово или преуспеть. Вы можете быть в состоянии убить службу. Будет ли ваше обслуживание остановлено, если слово или excel находится в этом состоянии.
Одна из проблем с попыткой проверить, если она висит, заключается в том, что ваш тест может привести к запуску и работе нового экземпляра слова, в то время как тот, который работает, все еще будет висели.
Лучший способ определить, если он висел, попросить его сделать то, что он должен делать, и проверить результаты. Мне нужно узнать больше о том, что он на самом деле делает.
Вот некоторые команды для использования в пакетный файл для очистки (оба должно быть в пути):
- СБНА остановка имя_служба - прекращает обслуживание по имени имя_служба
- подкожно начать SERVICENAME - начинает обслуживание по имени имя_службы
подкожно ServiceName запрос - Запрашивает статус SERVICENAME
Taskkill/F/IM excel.exe - завершает все экземпляры excel.exe
Я могу ответить на вторую половину; если у вас есть ссылка на объект приложения в вашем коде, вы можете просто позвонить «Quit» на нем:
private Microsoft.Office.Interop.Excel.Application _excel;
// ... do some stuff ...
_excel.Quit();
Для проверки зависшего процесса, я предполагаю, что вы хотели бы, чтобы попытаться получить некоторые данные из приложения и посмотреть, получаете ли вы результаты в разумные сроки (проверьте таймер или другой поток или что-то еще). Однако, вероятно, лучший способ.
Я помню, делать это несколько лет назад - так я говорю Office XP или 2003 дней, а не 2007.
Очевидно, что лучшее решение для автоматизации в эти дни, чтобы использовать новый формат XML, который описывает DOCX и т.д. используя пространство имен System.IO.Packaging.
В то время я замечал, что всякий раз, когда MSWord пинал ведро и хватило, на машине работал процесс под названием «Доктор Уотсон». Это была моя первая подсказка, что Слово споткнулось и упало. Иногда я мог видеть более одного WINWORD.EXE, но мой код просто использовался для сканирования хорошего доктора. После того, как я увидел, что (в коде), я убил все WINWORD.EXE процессов самого хороший врач, и перезапустить процесс пытать слово :-)
Надежды, которая дает вам некоторые подсказки относительно того, что искать.
Все самое лучшее,
Rob G
P.S. Я даже мог бы выкопать код в своих архивах, если вы не придете!
- 1. Поддержка различных версий Office с Office Automation
- 2. Office Automation с #import вредным?
- 3. C# COM Office Automation - RPC_E_SYS_CALL_FAILED
- 4. Ошибки Office Office
- 5. Способы оплаты надстройками Office в магазине Office
- 6. Office 2003 PIA с Office 2007
- 7. Панель задач надстройки Office Office открыта при загрузке документа
- 8. Автоматизация Microsoft Office для Office 365
- 9. Ошибка в Excel Automation/Office Interop для Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors()
- 10. back office prestashop déconexion
- 11. С Office 2003 в Office 2010
- 12. MS Office Webservice toolkit для Office 2007?
- 13. VBA conversion Office 2007 to Office 2010
- 14. Microsoft Office Communicator Automation API 2007 и и файл отправки
- 15. Как можно запустить запуск в Office 2010 Automation C# Application
- 16. Microsoft Office Communicator Automation API 2007 и получение мгновенных сообщений
- 17. Office Web Надстройка выглядит подогнана на Office для настольного
- 18. Отображение документов Office в Silverlight
- 19. Преобразование документов Office без офиса
- 20. Необходим ли MS Office при использовании поставщика Microsoft.Jet.OLEDB?
- 21. Office Addin завершает работу хоста при использовании WCF
- 22. Ошибка MODI OCR при использовании Microsoft Office 2013 в C#
- 23. Ошибка при использовании Open Office API в ASP.NET.
- 24. Office 2003 взаимодействует только с установленным Office 2010
- 25. Office 365 API ADFS
- 26. Office Недопустимая ошибка XML, файл все еще открывается в Office
- 27. Установка MS Office на сервере
- 28. Написание тета на libre office
- 29. ScreenUpdating Office-js taskpane
- 30. Как окна Office Office запускаются в отдельных процессах