powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Documents.Count = 0
25 сообщений из 78, страница 2 из 4
Documents.Count = 0
    #38549541
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть не полагаться на права, которые заданы для INTERACTIVE? Или для Everyone и Administrators тоже?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38549581
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычТо есть не полагаться на права, которые заданы для INTERACTIVE? Или для Everyone и Administrators тоже?

Да, я предлагаю задать права доступа, что называется явным образом. Ведь согласитесь, что есть разница как запускать, например, cmd As Administrator или просто, даже если пользователь сам по себе администратор.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550729
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyВерсию можно увидеть, например, в Word при нажатии кнопки Office -> Options -> Resources -> About.
Нашел. Ничего не сказано, нет ни слова 32, ни слова 64.

Зато!!! Я наконец сделал то, что было спрошено здесь:

Shocker.ProЕсли это выполнить не в сервисе, а в обычном winforms приложении?
Так вот. Не в сервисе - оно работает! Хоть с Open, хоть с Add. И даже без всякого Run as Administrator.

А в сервисе не заработало даже тогда, когда системщик запустил сервис под админом сети.

То есть понятно одно - дело не в Ворде.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550741
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну хорошо, ты с помощью Add получаешь ссылку на новоиспеченный объект. а она действительна? делать ты с ним что-то можешь? имя, например, прочитать...
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550746
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычТо есть понятно одно - дело не в Ворде.
Точнее: не в правах на уровне Ворда. А в том, что Ворд не открывает файлы, будучи запущен из-под сервиса.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550754
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proну хорошо, ты с помощью Add получаешь ссылку на новоиспеченный объект. а она действительна? делать ты с ним что-то можешь? имя, например, прочитать...
Сейчас проверю.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550790
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал MsgBox(o.ActiveDocument.Words.Count). Работает. Похоже, что всё работает. Только не из-под сервиса.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550797
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой, где ты подцепил эту дрянь ? )))
Add возвращает ссылку на объект, с ней и работай.

Владимир СанычТолько не из-под сервиса.а из под сервиса?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550808
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proой, где ты подцепил эту дрянь ? )))
Add возвращает ссылку на объект, с ней и работай.
ОК, буду иметь в виду на будущее. Но сейчас мне это никак не поможет.

Shocker.Proа из под сервиса?
См. сабж.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550815
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычСм. сабж.Так а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38550864
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Битность офиса можно проверить, если посмотреть как отображется процесс, например, для Word в Task Manager.

Дело, конечно, не в Word, исходя из того, что уже вначале было указано, что вручную файл работает, плюс была проверена политика безопасности макросов.

Если DCOM настроен правильно, а сомнения все еще есть, то причина в сервисе.

Проверил на одном из серверов:
- Сервис явно запущен от имени интерактивного пользователя, т.е. с указанием имени и пароля.
- Интерактивный пользователь явно указан в Component Services (My Computer и Microsoft Excel Application) со всеми необходимыми правами доступа.

Если же причина в сервисе, то можно попробовать написать как можно более подробный лог. В том или ином случае дожна проявится ошибка.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551006
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТак а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки?
Могу попробовать. К какому свойству обращаться?

iMrTidyЕсли же причина в сервисе, то можно попробовать написать как можно более подробный лог.
Лог чего? У меня открыт отладчик, я могу делать пошаговую отладку и проверять что угодно. Только бы знать, что проверять.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551009
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычМогу попробовать. К какому свойству обращаться?Name
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551189
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Windows Service не может быть стартовым проектом в режиме Debug. Как происходит тестирование/отладка? Word не работает в режиме Debug? Как ведет себя сервис, если его установить?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551202
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервис как раз установлен. Я в отладчике присоединяюсь к его процессу и попадаю в исходный код, который предусмотрительно скопирован на сервер. Ворд, полагаю, работает в обычном режиме, потому что он не откомпилирован с возможностью дебага, в отличие от моего сервиса.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551258
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычСервис как раз установлен. Я в отладчике присоединяюсь к его процессу и попадаю в исходный код, который предусмотрительно скопирован на сервер. Ворд, полагаю, работает в обычном режиме, потому что он не откомпилирован с возможностью дебага, в отличие от моего сервиса.

При таком способе debugging может повлиять на исполнение кода, по-крайней мере ряд вещей (GC, load/unload dll, DCOM) станут намного медленнее, все зависит конечно от самого кода, полагаю, что этот момент учтен. Можно попробовать поставить breakpoint на строку создания Word и параллельно отслеживать в Task Manager, создается ли процесс winword и как меняется объем занимамоей памяти. В Studio смотреть, что просиходит с переменными, особенно на строке с documents.add(...).

Вопрос о правах доступа интерактивного пользователя все еще открыт.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551273
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyряд вещей (GC, load/unload dll, DCOM) станут намного медленнее
Ну и что?

iMrTidyМожно попробовать поставить breakpoint на строку создания Word и параллельно отслеживать в Task Manager, создается ли процесс winword и как меняется объем занимамоей памяти.
Создается. Без отладчика дальше программа летит на обращении к ActiveDocument, которого нет, и процесс Ворда остается незакрытый. А поскольку это в цикле, то за минуту вся доступная память заполняется процессами Ворда, CPU доходит до 100% и я начинаю звонить системщику, чтобы он перезапустил сервер. Интересно то, что каждый из запущенных процессов потом живет своей жизнью и сам увеличивает свое использование CPU.

С отладчиком всё проще: я останавливаюсь до обращения к ActiveDocument и вижу, что Documents.Count = 0.

...Мысль. А не может быть, что они бегут асинхронно и открывают этот файл каждый у себя уже после того, как управление вернулось в мою программу и она полетела? Надо будет посмотреть, не создаются ли на диске файлы с тильдой.

iMrTidyВ Studio смотреть, что просиходит с переменными, особенно на строке с documents.add(...).
С какими конкретно переменными? Мои переменные на этой строке меняться не должны. А объекты Ворда... На какой из них смотреть?

iMrTidyВопрос о правах доступа интерактивного пользователя все еще открыт.
Почему в обычной программе (не сервисе) всё работает?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551282
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Санычдальше программа летит на обращении к ActiveDocument, которого нет, и процесс Ворда остается незакрытый..... в цикле, то за минуту вся доступная память заполняется процессами ВордаСаныч, никак не пойму, у тебя нет там отлова исключения? Поймал исключение - закрой Ворд через Quit, освободи переменную и дальше разбирайся, зачем звонить системщику? И все же - что за исключение там возникает?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551287
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proу тебя нет там отлова исключения?
Есть отлов исключений, которые могут происходить при реальной работе программы. То, что летит в процессе кривой установки, ловится вручную.

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

Код: vbnet
1.
2.
Set MyDoc = o.Documents.Add("c:\tmp\test.docx")
MyVar = MyDoc.Name

ты хочешь сказать, что первая строка выполняется без исключения, а переменная MyDoc=Nothing?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551301
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proда причем тут ActiveDocument - не пользуйся ты этой дрянью
Дык, какая разница? Если коллекция Documents пуста, то к ее элементу как ни обращайся, его там все равно нет.

Shocker.Pro
Код: vbnet
1.
2.
Set MyDoc = o.Documents.Add("c:\tmp\test.docx")
MyVar = MyDoc.Name

ты хочешь сказать, что первая строка выполняется без исключения, а переменная MyDoc=Nothing?
Именно такой вариант я смогу попробовать завтра. Но всё говорит о том, что именно так и будет.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551713
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работа в этом направлении временно приостановлена. Начальство решило попросить другой сервер. Лично мне кажется, что я через несколько дней приду к той же точке, но начальству виднее.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551719
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Жаль, что нам так и не удалось послушать начальника транспортного цеха" (с)
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38551806
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки жаль. Так что спасибо всем за сочувствие и соучастие, но мне кажется, что скоро придется продолжить.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557007
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, я вернулся. Новый сервер нам не дали. Сказали, что это виртуальная машина и от ее переустановки ничего не изменится. Так что я продолжаю.

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

Shocker.ProТак а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки?
Сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
                            Dim x As Object
                            Try
                                x = o.Documents.Open(...)
                                x = o.Documents.Add(...)
                            Catch ex As Exception
                                Stop
                            End Try


Прохожу пошагово. Никакой ошибки не возникает ни на Open, ни на Add. Оба раза вижу, что x = Nothing.

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


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