У нас есть служба Windows, содержащая FileSystemWatcher. Этот наблюдатель подбирает новые файлы. & создает документ Excel. Документ Excel затем автоматически отправляется на принтер с помощью Excel Interop.Автоматическая печать Excel из службы Windows
Выполнена вся настройка вокруг Автоматизации Excel (создание каталога рабочего стола в C:\Windows\SysWOW64\config\systemprofile
, предоставление локальных прав активации учетной записи службы в приложении Microsoft Excel).
Печать работает в течение нескольких дней, но затем внезапно, казалось бы, случайно, Excel Interop не может печатать. Служба застревает & не продолжает обработку. Исключений не происходит, служба просто останавливается &, похоже, висит. Ниже строка кода, где это происходит:
ws.PrintOutEx(Type.Missing, Type.Missing, Type.Missing, Type.Missing, printerName, Type.Missing, Type.Missing, Type.Missing);
ws
выше является экземпляром Microsoft.Office.Interop.Excel.Worksheet
Как только это произойдет, никакого вмешательства не кажется, решить эту проблему. Мы попытались остановить службу (используя taskkill
, так как она перестает отвечать), убивая процесс EXCEL.exe, который запускает &, начиная с его резервного копирования. Мы также попробовали перезагрузку сервера (под управлением Windows Server 2008). Каждый раз, когда загружается новый файл, служба застревает в этой строке. Единственный способ решить эту проблему - удалить & переустановку Excel.
У кого-нибудь есть подозрение, что может быть причиной этого &, как это можно решить? Даже альтернативные предложения по чтению файла & будут автоматически отправляться на принтер Excel.
Благодарим за быстрый ответ! Хорошо, так что, если это не должно быть сделано с автоматическими, неинтерактивными клиентами, может ли что-то вроде консольного приложения использоваться в качестве монитора? Причина, по которой мы используем Interop, заключается в том, что используемый шаблон Excel имеет вертикально вращающуюся ячейку, которую ни одна из сторонних библиотек, похоже, не может произвести на распечатках. –