|
Ошибка 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 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Не торопись, я завтра с утра все равно в бегах, вернусь к середине дня. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2015, 23:31 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Извини за задержку. сваялся такой (ниже) код. Цель - либо получить содержимое переменных окружения в файле, либо, если запись в файл не пойдет, все-таки залогировать их значения в штатный лог приложений windows если запись не получится, то, рассмотрев полученный виндоус-лог можно будет поскриптовать еще насчет отсутствующих прав на запись и т.п. Но тут я не спец и такой скрипт от зубов у меня не отлетит. Надо будет выписывать по складам. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92.
задача попробовать этот код поместить в модуль заранее созданного документа, затем открыть этот документ через "сервисную автоматизацию" и выполнить эту процедуру через Application.Run ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 00:51 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
booby, TODO: поправить дефект: в ветках логирования ошибок внутри обоих циклов забыт Err.Clear ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 00:55 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
booby, ну и, причесать прочие дефекты далее по вкусу... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 00:59 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Пока что громадное спасибо. Доеду до копа позже... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 10:25 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
компа ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 10:26 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Не успелось... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 19:17 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, Есть вести с полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2015, 22:03 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Увы, пока нет. Бегаю по другим делам, из которых часть является более срочными делами на работе, а другая вообще с работой не связана. Но я к этой проблеме неминуемо вернусь, потому что сделать ее я все равно должен. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2015, 19:12 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
booby, Мое начальство, по случаю тоже говорящее по-русски, просило передать тебе коробку конфет. Пока что приаттачиваю какую могу, но можно и физическую коробку по физическому адресу. А проблема, как оказалось, была намного проще. Когда в ДиКоме я задавал юзера для обращений к Ворду, я не перезапустил сервер. После перезапуска всё затикало. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 13:50 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир Саныч, шпсб. я тут как раз на сидр с пива переквалифицировался, так что конфетки в точно в масть. понял - т.е. - права не "схватились" на лету и затребовали перезапуска сервера (правильно я понимаю, что под "сервером" понимается твой прикладной сервис, над которым происходят танцы с бубнами? ). Цель сляпанного скрипта ( с дефектами - в ифах, как обычно, запутался) как раз отловить отсутствие прав на запись и/или увидеть детали переменных окружения, унаследованных запущенным процессом - он (скрипт) ошибку по отсутствию прав в виндовый лог должен был бы писать (ифы я не стал править - там и так видно, где управление не так бежит). Касательно перезапуска - получилось вот что - пока ты настраивал параметры права для пользователя/ворда с не остановленным сервисом, новые значения не были видны, т.к. "окружение" оказалось унаследованным процессом по состоянию на момент запуска. Это "стандартный случай", когда надо подрулить переменные окружения - новые значения не будут видны для уже запущенного процесса. С собственно правами может быть дополнительная тема, связанная с тем, что система не всегда сразу видит только что назначенные права. Но, скрипт, если не пускал, ты все равно пусти для любопытства. я так мыслил - либо - натурально - права на запись в винде недокручены, либо над вордом надо как-то шибко хитро шаманить, и - очень даже может быть - в сильно специфической привязке к конкретной версии. Второе удаленно и без ясного плана сильно затруднительно. Поэтому была цель - сначала отсечь первое, а потом, не торопясь, изобретать план для подрыва второй темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 15:59 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
booby(правильно я понимаю, что под "сервером" понимается твой прикладной сервис, над которым происходят танцы с бубнами? ) Никак нет. Под сервером я понимаю компутер. Остальное я прочитал, попробую осмыслить... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 11:51 |
|
Ошибка Command failed при попытке SaveAs
|
|||
---|---|---|---|
#18+
Владимир СанычНикак нет. Под сервером я понимаю компутер. Хм... и ок. Может оказаться, что это "плохо воспроизводимая" тема - что-то здесь не так. М.б. в части и вокруг локального применения доменных правовых назначений. Каки-то есть детальки, приводящие к необъяснённому поведению... P.S. Конфетки все-равно сожрал - не взирая. И аж чафкал, штоп коллегам не досталося. Как это в песне поется - "Слава богу - есть у нас враги." От того не просто надежда - целая вера рождается. А за водкою я сегодня уже отсидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 23:44 |
|
|
start [/forum/topic.php?all=1&fid=61&tid=2173677]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 438ms |
0 / 0 |