|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
То есть не полагаться на права, которые заданы для INTERACTIVE? Или для Everyone и Administrators тоже? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 01:02 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычТо есть не полагаться на права, которые заданы для INTERACTIVE? Или для Everyone и Administrators тоже? Да, я предлагаю задать права доступа, что называется явным образом. Ведь согласитесь, что есть разница как запускать, например, cmd As Administrator или просто, даже если пользователь сам по себе администратор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 02:10 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
iMrTidyВерсию можно увидеть, например, в Word при нажатии кнопки Office -> Options -> Resources -> About. Нашел. Ничего не сказано, нет ни слова 32, ни слова 64. Зато!!! Я наконец сделал то, что было спрошено здесь: Shocker.ProЕсли это выполнить не в сервисе, а в обычном winforms приложении? Так вот. Не в сервисе - оно работает! Хоть с Open, хоть с Add. И даже без всякого Run as Administrator. А в сервисе не заработало даже тогда, когда системщик запустил сервис под админом сети. То есть понятно одно - дело не в Ворде. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:18 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
ну хорошо, ты с помощью Add получаешь ссылку на новоиспеченный объект. а она действительна? делать ты с ним что-то можешь? имя, например, прочитать... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:21 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычТо есть понятно одно - дело не в Ворде. Точнее: не в правах на уровне Ворда. А в том, что Ворд не открывает файлы, будучи запущен из-под сервиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:22 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Shocker.Proну хорошо, ты с помощью Add получаешь ссылку на новоиспеченный объект. а она действительна? делать ты с ним что-то можешь? имя, например, прочитать... Сейчас проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:24 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Сделал MsgBox(o.ActiveDocument.Words.Count). Работает. Похоже, что всё работает. Только не из-под сервиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:38 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
ой, где ты подцепил эту дрянь ? ))) Add возвращает ссылку на объект, с ней и работай. Владимир СанычТолько не из-под сервиса.а из под сервиса? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:41 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Shocker.Proой, где ты подцепил эту дрянь ? ))) Add возвращает ссылку на объект, с ней и работай. ОК, буду иметь в виду на будущее. Но сейчас мне это никак не поможет. Shocker.Proа из под сервиса? См. сабж. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:44 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычСм. сабж.Так а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 17:47 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир Саныч, Битность офиса можно проверить, если посмотреть как отображется процесс, например, для Word в Task Manager. Дело, конечно, не в Word, исходя из того, что уже вначале было указано, что вручную файл работает, плюс была проверена политика безопасности макросов. Если DCOM настроен правильно, а сомнения все еще есть, то причина в сервисе. Проверил на одном из серверов: - Сервис явно запущен от имени интерактивного пользователя, т.е. с указанием имени и пароля. - Интерактивный пользователь явно указан в Component Services (My Computer и Microsoft Excel Application) со всеми необходимыми правами доступа. Если же причина в сервисе, то можно попробовать написать как можно более подробный лог. В том или ином случае дожна проявится ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 18:16 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Shocker.ProТак а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки? Могу попробовать. К какому свойству обращаться? iMrTidyЕсли же причина в сервисе, то можно попробовать написать как можно более подробный лог. Лог чего? У меня открыт отладчик, я могу делать пошаговую отладку и проверять что угодно. Только бы знать, что проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 19:48 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычМогу попробовать. К какому свойству обращаться?Name ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 19:49 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир Саныч, Windows Service не может быть стартовым проектом в режиме Debug. Как происходит тестирование/отладка? Word не работает в режиме Debug? Как ведет себя сервис, если его установить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 22:40 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Сервис как раз установлен. Я в отладчике присоединяюсь к его процессу и попадаю в исходный код, который предусмотрительно скопирован на сервер. Ворд, полагаю, работает в обычном режиме, потому что он не откомпилирован с возможностью дебага, в отличие от моего сервиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2014, 22:49 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычСервис как раз установлен. Я в отладчике присоединяюсь к его процессу и попадаю в исходный код, который предусмотрительно скопирован на сервер. Ворд, полагаю, работает в обычном режиме, потому что он не откомпилирован с возможностью дебага, в отличие от моего сервиса. При таком способе debugging может повлиять на исполнение кода, по-крайней мере ряд вещей (GC, load/unload dll, DCOM) станут намного медленнее, все зависит конечно от самого кода, полагаю, что этот момент учтен. Можно попробовать поставить breakpoint на строку создания Word и параллельно отслеживать в Task Manager, создается ли процесс winword и как меняется объем занимамоей памяти. В Studio смотреть, что просиходит с переменными, особенно на строке с documents.add(...). Вопрос о правах доступа интерактивного пользователя все еще открыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 00:10 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
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Вопрос о правах доступа интерактивного пользователя все еще открыт. Почему в обычной программе (не сервисе) всё работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 00:47 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир Санычдальше программа летит на обращении к ActiveDocument, которого нет, и процесс Ворда остается незакрытый..... в цикле, то за минуту вся доступная память заполняется процессами ВордаСаныч, никак не пойму, у тебя нет там отлова исключения? Поймал исключение - закрой Ворд через Quit, освободи переменную и дальше разбирайся, зачем звонить системщику? И все же - что за исключение там возникает? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 01:04 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Shocker.Proу тебя нет там отлова исключения? Есть отлов исключений, которые могут происходить при реальной работе программы. То, что летит в процессе кривой установки, ловится вручную. Shocker.ProИ все же - что за исключение там возникает? Где? При обращении к ActiveDocument не помню формулировку, но она и не важна, потому что глазами видно, что ActiveDocument отсутствует. А строчкой выше, на Add или Open, никакого исключения нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 01:15 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Владимир СанычПри обращении к ActiveDocument не помню формулировку, но она и не важнада причем тут ActiveDocument - не пользуйся ты этой дрянью Код: vbnet 1. 2.
ты хочешь сказать, что первая строка выполняется без исключения, а переменная MyDoc=Nothing? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 01:27 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Shocker.Proда причем тут ActiveDocument - не пользуйся ты этой дрянью Дык, какая разница? Если коллекция Documents пуста, то к ее элементу как ни обращайся, его там все равно нет. Shocker.Pro Код: vbnet 1. 2.
ты хочешь сказать, что первая строка выполняется без исключения, а переменная MyDoc=Nothing? Именно такой вариант я смогу попробовать завтра. Но всё говорит о том, что именно так и будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 01:45 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Работа в этом направлении временно приостановлена. Начальство решило попросить другой сервер. Лично мне кажется, что я через несколько дней приду к той же точке, но начальству виднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 12:56 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
"Жаль, что нам так и не удалось послушать начальника транспортного цеха" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 12:58 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Таки жаль. Так что спасибо всем за сочувствие и соучастие, но мне кажется, что скоро придется продолжить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 13:48 |
|
Documents.Count = 0
|
|||
---|---|---|---|
#18+
Господа, я вернулся. Новый сервер нам не дали. Сказали, что это виртуальная машина и от ее переустановки ничего не изменится. Так что я продолжаю. iMrTidyПредлагаю попробовать добавить интерактивного пользователя со всеми возможными правами отдельно как в Microsoft Word Application, так и в My Computer, чтобы окончательно исключить подозрение на права доступа пользователя. Прописал во всех возможных местах явным образом того юзера, под которым запускается сервис. Включая задание прав для этого конкретного юзера. Ничего не изменилось. Shocker.ProТак а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки? Сделал так: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Прохожу пошагово. Никакой ошибки не возникает ни на Open, ни на Add. Оба раза вижу, что x = Nothing. Тупик, господа. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2014, 13:24 |
|
|
start [/forum/topic.php?fid=61&msg=38549581&tid=2173734]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 132ms |
0 / 0 |