powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Documents.Count = 0
25 сообщений из 78, страница 1 из 4
Documents.Count = 0
    #38546508
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое почтение всем и заранее спасибо.

Сервис, написанный на ДотНете, обращается к Ворду. Вот код:

Код: vbnet
1.
2.
3.
Dim o As Word.Application
o = New Word.Application
o.Documents.Add("c:\tmp\test.docx")


Код срабатывает без ошибок, но после него остается o.Documents.Count = 0. Как это вылечить?

Если я пытаюсь открыть тот же файл в Ворде вручную, то всё получается. Сервис бежит под тем же юзером, под которым я логинюсь сам.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546639
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Саныч.
а проверяешь ты Count немедленно, сразу за Add?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546650
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546663
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя создается ли вообще документ на этом шаблоне? путь правильный, ошибок не возникает?

Если это выполнить не в сервисе, а в обычном winforms приложении?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546679
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА у тебя создается ли вообще документ на этом шаблоне?
На каком шаблоне? Не понял вопроса.

Shocker.Proпуть правильный, ошибок не возникает?
Это я вроде уже написал: код отрабатывает без ошибок, тот же файл вручную открывается без проблем.

Shocker.ProЕсли это выполнить не в сервисе, а в обычном winforms приложении?
Попробую, доложу.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546708
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Microsoft не рекомендует и не поддерживает Server-side Automation Офисных приложений.

Тем не менее, чтобы код работал при открытии документа через сервис, необходимо указать в настройках DCOM - Interactive User, а именно Component Service -> Computers -> My Computer -> DCOM Config -> Microsoft Word Application -> Properties -> Identity -> The interactive user.

Если Microsoft Word Application отсутствует в списке, то можно добавить соответствующий ключ в реестер вручную или как рекомендуется здесь .

Удачи!
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546716
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyMicrosoft не рекомендует и не поддерживает Server-side Automation Офисных приложений.
У меня нет выхода - сервер должен создавать файлы Ворда.

iMrTidyЕсли Microsoft Word Application отсутствует в списке, то можно добавить соответствующий ключ в реестер вручную или как рекомендуется здесь .
Интуитивно кажется, что это именно то, что мне нужно. Заранее большое-большое спасибо.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546718
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Начиная с Office 2007, Microsoft использует формат Open XML, который позволяет работать с файлами офиса без участия самого Офиса. Для этих целей в .Net Framework существует Open XML Format SDK .
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546858
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычНа каком шаблоне? Не понял вопроса.Для Documents.Add первый параметр - это имя шаблона.Владимир Санычтот же файл вручную открывается без проблем.Открыть файл вручную и создать новый на основе его, как шаблона - не совсем одно и то жеВладимир СанычПопробую, доложу.тогда не очень понятно, где этот код работает. если ты не пробовал
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38546970
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyНачиная с Office 2007, Microsoft использует формат Open XML, который позволяет работать с файлами офиса без участия самого Офиса. Для этих целей в .Net Framework существует Open XML Format SDK .
Понятно, благодарю, попробую изучить. Но это пойдет на будущее. Сейчас я пытаюсь установить на сервере уже существующую систему.

Shocker.ProДля Documents.Add первый параметр - это имя шаблона.
Упс... Век живи, век учись. Интересно, что программа-то работает правильно. Я делаю вот такой Add, потом всякое редактирование в файле и в конце SaveAs.

Shocker.Proтогда не очень понятно, где этот код работает. если ты не пробовал
Работает на других серверах. Сейчас ставлю на очередной сервер и уткнулся.

===
Отчет о проделанной работе будет чуть позже.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547435
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyЕсли Microsoft Word Application отсутствует в списке, то можно добавить соответствующий ключ в реестер вручную или как рекомендуется здесь .
Пытаюсь сделать то, что там написано. Дошел до слов WINWORD.EXE –REGSERVER. Открывается Ворд и выдает сообщение о том, что файл –REGSERVER.doc не найден.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547450
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычiMrTidyЕсли Microsoft Word Application отсутствует в списке, то можно добавить соответствующий ключ в реестер вручную или как рекомендуется здесь .
Пытаюсь сделать то, что там написано. Дошел до слов WINWORD.EXE –REGSERVER. Открывается Ворд и выдает сообщение о том, что файл –REGSERVER.doc не найден.

Возможно команда должна быть winword.exe /r
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547502
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил эту команду. На экране какой-то процесс пробежал. Но Ворда в списке нет, и исходная проблема тоже не решилась. Перезагрузить сервер уже пробовал.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547621
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычЗапустил эту команду. На экране какой-то процесс пробежал. Но Ворда в списке нет, и исходная проблема тоже не решилась. Перезагрузить сервер уже пробовал.

Тогда можно прописать ключ вручную.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547664
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему в файле написано Excel?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547831
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычА почему в файле написано Excel?

Прошу прощения, mea culpa, это был изначально аналогичный ключ для Excel.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38547857
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и подумал. Еще раз спасибо, проверка последует завтра.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38548457
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы и увы. Ворд в списке появился, и в свойствах у него отмечено The interactive user. Но по-прежнему o.Documents.Count = 0.

...
Рейтинг: 0 / 0
Documents.Count = 0
    #38548488
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Возможно интерактивный пользователь не имеет соответсвующих прав на запуск COM, вкладка Security -> Configuration Permissions -> Edit -> интерактивный пользователь должен иметь "Full Control".
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38548557
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дал Full control юзеру INTERACTIVE (хотя до того был Full control у группы Administrators, в которую входит юзер, под которым бежит сервис).

Заменил o.Documents.Add на o.Documents.Open.

Нифига.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38548676
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычДал Full control юзеру INTERACTIVE (хотя до того был Full control у группы Administrators, в которую входит юзер, под которым бежит сервис).

Заменил o.Documents.Add на o.Documents.Open.

Нифига.

Если не используются, например, такие события как открытие документа, т.е. связанные непосредственно с документом, то Add или Open в таком случае не играет роли.

Проверьте настройки COM Security для My Computer как указано на картинке.

Какая версия и битность Офиса и ОС?
Разрешены ли макросы для интерактивного пользователя?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38549044
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Local Access - Everyone - Allow
Remote Access - Everyone - Allow
Local Launch - Everyone - Allow
Remote Launch - Everyone ничего, но зато Administrators - Allow
Local Activation - Everyone - Allow
Remote Activation - Everyone ничего, но зато Administrators - Allow

Windows 2008, 64 bit
Word 2007, где у него About я не нашел

Макросы - если речь о том, что задается в самом Ворде под рубрикой Trust Center, то открыто по максимуму.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38549420
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычLocal Access - Everyone - Allow
Remote Access - Everyone - Allow
Local Launch - Everyone - Allow
Remote Launch - Everyone ничего, но зато Administrators - Allow
Local Activation - Everyone - Allow
Remote Activation - Everyone ничего, но зато Administrators - Allow

Windows 2008, 64 bit
Word 2007, где у него About я не нашел

Макросы - если речь о том, что задается в самом Ворде под рубрикой Trust Center, то открыто по максимуму.

Предлагаю попробовать добавить интерактивного пользователя со всеми возможными правами отдельно как в Microsoft Word Application, так и в My Computer, чтобы окончательно исключить подозрение на права доступа пользователя.

Версию можно увидеть, например, в Word при нажатии кнопки Office -> Options -> Resources -> About.

Если окажется, что версия 64 бита, то Component Services нужно запускать соответственно через mmc -64 со всеми вытекающими, ну а если нет, то mmc -32.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38549440
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК. Версию увижу завтра.

А что значит добавить пользователя в Ворде? Я умею добавлять пользователей только в Аксессе.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38549524
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычОК. Версию увижу завтра.

А что значит добавить пользователя в Ворде? Я умею добавлять пользователей только в Аксессе.

Я имел в виду в DCOM -> Microsoft Word Application -> Properites -> Security.
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 1 из 4
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Documents.Count = 0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]