|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Мое почтение и благодарность авансом всем. Сервис (про который я уже задавал много вопросов), написанный на ДотНете, обращается к Ворду. Отличие от предыдущих вопросов в том, что это Ворд 2013, Виндоуз 2012 и ДотНет 4. Кусок кода: Код: vbnet 1. 2. 3. 4. 5.
На команде SaveAs возникает ошибка Command failed. Далее в обработчике ошибки я пишу так: Код: vbnet 1. 2. 3. 4. 5. 6.
На команде Quit процесс Ворда начинает забирать более 98% CPU, и если я его тут же не снимаю, то сервер зависает полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 17:35 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Дополнительная информация. Вручную SaveAs работает. Сервис бежит под тем же юзером, под которым я захожу вручную. На месте многоточий в коде ничего особенного нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 17:37 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир СанычНа месте многоточий в коде ничего особенного нетНе факт. Может все же приведете полный текст строки? Ведь именно на ней ошибка, а Вы информацию давать не хотите :-) Метод SaveAs имеет аргументы, которые Вы, возможно, не учли должным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 17:43 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, И еще: можно выполнить просто Код: vbnet 1.
и не нужен цикл. Данная строка закроет приложение и все открытые документы без сохранения... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 17:45 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
The_PristВладимир СанычНа месте многоточий в коде ничего особенного нетНе факт. Может все же приведете полный текст строки? Ведь именно на ней ошибка, а Вы информацию давать не хотите :-) Метод SaveAs имеет аргументы, которые Вы, возможно, не учли должным образом. На месте первого многоточия нет ничего совсем. Я обходил этот код в отладчике при помощи Set Next Statement. На месте второго многоточия я пробовал разные варианты, ошибка происходит консистентно. Самый простой из вариантов: o.ActiveDocument.SaveAs("C:\pdf\tmp.docx", Word.WdSaveFormat.wdFormatDocument) The_PristИ еще: можно выполнить просто Код: vbnet 1.
и не нужен цикл. Данная строка закроет приложение и все открытые документы без сохранения... Спасибо, вторая проблема решена. Осталось решить первую... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 18:01 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Санычo.ActiveDocument.SaveAs("C:\pdf\tmp.docx", Word.WdSaveFormat.wdFormatDocument)В пути указываете один формат, а в качестве формата другой. Правильно: Код: vbnet 1.
или Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 18:18 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Попробовал и так тоже. Получил ту же ошибку. Она от этого не зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 18:24 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Странно, конечно. Попробуйте работать не с активным документом, а с назначенным: Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 19:08 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Спасибо за идею, попробую завтра. Хотя что-то я пессимистичен... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 19:14 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, посмотри Ошибка при сохранении в Excel: исключение из HRESULT: 0x800A03EC кроме того, в прошлых твоих темах про Word постах обсуждались темы о запуске с правами интерактивного пользователя и чтении/записи файла в место, для которого у запускающего пользователя должны быть windows права на чтение-запись и офис доверяет такому месту. Если все остальное в порядке - проверь windows-права для запускающего пользователя в каталоге, в который ты собираешься писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 23:27 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, и это, извини за критику: Код: vbnet 1. 2. 3.
мое скромное мнение так стоит - для автоматизатора текст Код: vbnet 1.
имеет такой смысл - это когда ты искусственный интеллект (вроде вируса) внедряешь в неизвестно какой и откуда взятый, уж точно не тобой созданный, текущий документ. А если ты его, как бог, собственными ручками за семь дён из мозга изрыгаешь, мне, как тоже автоматизатору, было бы привычней видеть что-то такое: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 23:38 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
некоторые ссылки про office-2003 для памяти http://support.microsoft.com/kb/257757 http://support.microsoft.com/kb/259971 http://office.microsoft.com/en-au/access-help/HV080200453.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 23:55 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Увы. Вместо ActiveDocument стал работать с присвоенным объектом. Создал недостающую системную директорию. Перепроверил, под каким юзером бежит сервис (попробовал оба варианта). Добавил место создания файла в Trusted locations. Ошибка упорно остается - Command failed. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 11:47 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Посмотрел ErrorCode, нагуглил для него вот это: http://www.thinglink.org/comexception-errorcodes-2146824090.php Там предлагают сгрузить и запустить нечто для проверки компьютера. Как-то не хочется пока... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 12:21 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Случайно обнаружил, что в тот момент, когда я получаю ошибку, в процессах появляется какой-то PrintIsolationHost. Их там у меня уже несколько торчит. Но они потом через некоторое время исчезают. Проверил принтеры - есть принтер по умолчанию, и даже работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 13:30 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Нашел ссылку: http://welp.stethos.com/online-help/PrintIsolationHost.html Отменил Execute print drivers in isolated processes, как там сказано. Теперь PrintIsolationHost не появляется, но ошибка продолжает быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 15:20 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Детали ошибкиSystem.Runtime.InteropServices.COMException was unhandled ErrorCode=-2146824090 HelpLink=wdmain11.chm#36966 HResult=-2146824090 Message=Command failed Source=Microsoft Word StackTrace: at Microsoft.Office.Interop.Word.DocumentClass.SaveAs(Object& FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object& EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks) InnerException: ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 15:35 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Детали ошибки HelpLink=wdmain11.chm#36966 Нигде не могу найти файл wdmain11.chm - ни у себя, ни в Интернете... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 15:56 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, правильно я понимаю, что права запускающего пользователя на каталог ты тоже проверил? и для пользователя "Сетевые сервисы" права тоже назначены? Для увеличения числа гипотез хорошо было бы видеть весь код, если это возможно. Совсем для начала было бы хорошо увидеть как точно выглядит .SaveAs(...). Залез в объектную модель ворда (2013) и увидел вот что метод - SaveAs - скрытый. Открыт SaveAs2 (добавлен в версии 2010) Кроме того, есть скрытый метод saveas2000 пока есть 2 направления мысли а) проблема с правами на com или каталоги б) проблема с содержанием документа (например, не идет конвертация в заказанный формат) или состояниемворда как com-объекта для эксперимента предлагаю провести такие тесты: 0) открыть в тестируемом "сервисе" документ, содержащий vba-модуль с публичной процедурой и за пустить ее через Application.Run процедура должна пытаться писать "из под ворда" в целевой каталог простой файлик, содержащий нолик или единичку с использованием "стандартных" средств fso - textfile если этот эксперимент не проходит - надо дальше надавливать на права 1) попробовать сделать saveas документа с предельно простым содержанием (нолик или единичка или даже просто пустой документ) без форматирования в максимально простом формате типа текстового может быть, эксперименты такого сорта помогут уточнить направление дальнейших раскопок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 18:10 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
boobyправильно я понимаю, что права запускающего пользователя на каталог ты тоже проверил? Уже было. Тот же пользователь, под которым я захожу вручную. Создать файл в этом каталоге вручную могу. boobyОткрыт SaveAs2 (добавлен в версии 2010) Кроме того, есть скрытый метод saveas2000 Попробовал оба. Результат тот же, включая все детали ошибки (приведенные мной выше). boobyСовсем для начала было бы хорошо увидеть как точно выглядит .SaveAs(...).boobyили даже просто пустой документ Уже было. Именно это и делаю. Вот весь код: Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 18:29 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Санычboobyправильно я понимаю, что права запускающего пользователя на каталог ты тоже проверил? Уже было. Тот же пользователь, под которым я захожу вручную. Создать файл в этом каталоге вручную могу. boobyОткрыт SaveAs2 (добавлен в версии 2010) Кроме того, есть скрытый метод saveas2000 Попробовал оба. Результат тот же, включая все детали ошибки (приведенные мной выше). boobyСовсем для начала было бы хорошо увидеть как точно выглядит .SaveAs(...).boobyили даже просто пустой документ Уже было. Именно это и делаю. Вот весь код: Код: vbnet 1. 2. 3. 4.
остается интересным эксперимент с записью из vba-мароса текстового файла с использованием fso вероятно, результат не изменится, но как насчет dd.SaveAs("C:\pdf\tmp.fl", 16) кроме того, вместо o = New Word.Application я бы поискал createObject("Word.Application") а если вместо dd.SaveAs сказать dd.Close(False), то все нормально завершится - без ошибок? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 18:43 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
boobyостается интересным эксперимент с записью из vba-мароса текстового файла с использованием fso С этим я попробую разобраться завтра. boobyвероятно, результат не изменится, но как насчет dd.SaveAs("C:\pdf\tmp.fl", 16) кроме того, вместо o = New Word.Application я бы поискал createObject("Word.Application") Оба эксперимента проделал, всё без изменений. boobyа если вместо dd.SaveAs сказать dd.Close(False), то все нормально завершится - без ошибок? Проверил - да, без ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 18:54 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
boobyс использованием "стандартных" средств fso - textfile А можно пример такого кода? Я привык при создании файлов из-под VBA считать стандартными другие средства... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 22:29 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
да, меня тут гонят с компа. сегодня позже, как вернут доступ. Надеюсь, в пределах часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 22:43 |
|
|
start [/forum/topic.php?fid=61&msg=38853497&tid=2173677]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 151ms |
0 / 0 |