|
20.03.2013, 14:37 | #1 |
Участник
|
Microsoft.Office.Interop.Excel
Добрый день!
Microsoft.Office.Interop.Excel._Application excel; ; excel = new Microsoft.Office.Interop.Excel.ApplicationClass(); если код выполняется на клиенте объект excel создается, если код выполняется на сервере excel равно null. На сервере Excel установлен. AX2009, kernal version 5.0.1500.2985, СУБД Microsoft SQL Server 2008 R2 |
|
20.03.2013, 15:10 | #2 |
Участник
|
А если так?
X++: permission = new InteropPermission(InteropKind::ClrInterop); permission.assert(); excel = new Microsoft.Office.Interop.Excel.ApplicationClass(); CodeAccessPermission::revertAssert(); |
|
20.03.2013, 15:24 | #3 |
Участник
|
Так и делаю, просто не весь код вставил. Не помогает.
|
|
20.03.2013, 16:16 | #4 |
Участник
|
А сборка на сервере есть?
|
|
20.03.2013, 17:05 | #5 |
Участник
|
да есть Microsoft.Office.Interop.Excel.dll в папке C:\WINDOWS\assembly.
|
|
20.03.2013, 17:10 | #6 |
Участник
|
Версия сборки совпадает с той, на которую ссылка в DAX?
|
|
20.03.2013, 17:25 | #7 |
Участник
|
да. 14.0.0.0
|
|
20.03.2013, 17:34 | #8 |
Участник
|
Учетка, под которой работает АОС какие права имеет? Сделайте для проверки ее локальным админом.
|
|
|
За это сообщение автора поблагодарили: DmitryS (1). |
22.03.2013, 11:39 | #9 |
Участник
|
Учетку сделал локальным админом, помогло, объект начал создаваться.
Спасибо. |
|
20.03.2013, 17:44 | #10 |
NavAx
|
AOS x32 или x64? Офис тоже - какой битности установлен?
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
21.03.2013, 09:33 | #11 |
Участник
|
А если так
|
|
22.03.2013, 09:35 | #12 |
Участник
|
AOS - 64, офис - 32.
|
|
23.04.2014, 16:00 | #13 |
Участник
|
столкнулся с такой же проблемой. Проделал все вышеописанное не помогает. Если у класса ставлю RunOn = Client, то класс отрабатывает, application создается если RunOn = Server то валится в ошибку.
X++: protected boolean makeDocument(boolean _visible = false) { try { new InteropPermission(InteropKind::ClrInterop).assert(); application = new Microsoft.Office.Interop.Excel.ApplicationClass(); // вот тут ошибка workbooks = application.get_Workbooks(); application.set_Visible(_visible); application.set_EnableEvents(false); application.set_DisplayAlerts(false); workbook = workbooks.Add(this.fullTemplateName()); CodeAccessPermission::revertAssert(); return true; } catch { return false; } } Объект "CLRObject" не может быть создан |
|
24.04.2014, 08:46 | #14 |
Участник
|
Хотя сначала класс работал в пакете три дня, а потом бац и не работает.
|
|
24.04.2014, 10:47 | #15 |
Участник
|
|
|
24.04.2014, 10:57 | #16 |
Участник
|
Идёте в C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\
Создать -> Новую папку Потом правой кнопкой мышки на папке -> Свойства -> Безопасность -> Изменить и т.д. В вашем случае это надо делать на сервере (т.е. на AOS) и еще не забыть дать права учетной записи, под которой работает AOS, на эту папку (в моем случае это был .Net BC на веб сервере) З.Ы. не забудьте создать папку Desktop в SysWOW64 и дать права учетной записи AOS'а, на эту папку! |
|
24.04.2014, 11:01 | #17 |
Участник
|
Ой, и DCOM компоненту Excel надо настроить как описано тут
|
|
24.04.2014, 16:41 | #18 |
Участник
|
Не компилируется джоб приведенный по ссылке. Начал ставит проекты. Сейчас нужна таблица DEV_SysReleaseUpdateScriptsRef.
Заметил одну странность. Мой класс не работает в серверном режиме только ан рабочей базе на aos1. На тестовой и разработческой базе класс работает. Тестовая и разработческая база тоже на aos1. В чем может быть причина? |
|
24.04.2014, 17:20 | #19 |
Участник
|
может быть тестовое и рабочее приложение работают под разными учетками и у них разные права?
|
|
25.04.2014, 08:58 | #20 |
Участник
|
Да учетки были разные. Запустил тест под той же учеткой что и рабочая база. На Тесте все равно создается приложение, а на рабочей нет. И там и там сборка 11.0.0.0.
X++: application = new Microsoft.Office.Interop.Excel.ApplicationClass(); // ошибки не возникает |
|
|
|