У меня есть пользователь, у которого есть, чтобы использовать Microsoft Word 2007 для создания и обработки текстовых документов в своем веб-приложении ASP. Я хорошо знаю статью «Considerations for server-side Automation of Office» KB и многие сторонние компоненты, доступные для этого, но они уже прошли по этому пути.Как закончить WINWORD.EXE при использовании классического ASP?
Проблема, с которой он сталкивается, заключается в том, что процесс WINWORD.EXE
никогда не заканчивается, хотя он называет объект Quit
объектом приложения.
Например:
Set objWord = Server.CreateObject("Word.Application")
'' Do work
objWord.Quit
Set objWord = Nothing
Как и следовало ожидать, его сервер заканчивает завален осиротевших WINWORD.EXE
процессов, требующих ручного вмешательства прекратить.
Есть ли способ закончить эти WINWORD.EXE
процессы явно в скрипте?
Update:
Я сделал некоторый прогресс с этим, и я думаю, что есть ручка на то, что проблема есть. Когда приложение Office запускается в первый раз под новой учетной записью Windows, оно запрашивает ваше имя и инициалы. Теперь, поскольку нет видимого GUI, нет никого, кто мог бы нажать все правильные кнопки. Я попытался запустить WINWORD.EXE
как анонимный идентификатор учетной записи веб-сайта, используя RUNAS
, но есть некоторые проблемы с разрешением, которые мешают Word или Office выполнять какую-то другую начальную процедуру настройки, которую он хочет сделать.
David - спасибо за ввод. Сценарий, который стоит выше, где он только создает экземпляр Word.Application, а затем делает Quit, по-прежнему оставляет процесс позади. Мне еще нужно установить MyWorkBook.Saved? – Kev
Еще одна вещь, которую нужно попробовать - убедиться, что ConnectKind - ckNewInstance, и что для AutoQuit установлено значение True. Это касается любой ситуации, когда Word остается открытым для повторного использования. Какая версия Word работает на сервере (я прекратил использовать Automation в Word 2003, никогда не пробовал ее с 2007) – David
Это Word 2007. Какие объекты ConnectKind и AutoQuit? – Kev