![]() |
#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 |
|
![]() |
#2 |
Участник
|
А если так?
X++: permission = new InteropPermission(InteropKind::ClrInterop); permission.assert(); excel = new Microsoft.Office.Interop.Excel.ApplicationClass(); CodeAccessPermission::revertAssert(); |
|
![]() |
#3 |
Участник
|
Так и делаю, просто не весь код вставил. Не помогает.
|
|
![]() |
#4 |
Участник
|
А сборка на сервере есть?
|
|
![]() |
#5 |
Участник
|
да есть Microsoft.Office.Interop.Excel.dll в папке C:\WINDOWS\assembly.
|
|
![]() |
#6 |
Участник
|
Версия сборки совпадает с той, на которую ссылка в DAX?
|
|
![]() |
#7 |
Участник
|
да. 14.0.0.0
|
|
![]() |
#8 |
Участник
|
Учетка, под которой работает АОС какие права имеет? Сделайте для проверки ее локальным админом.
|
|
|
За это сообщение автора поблагодарили: DmitryS (1). |
![]() |
#9 |
NavAx
|
AOS x32 или x64? Офис тоже - какой битности установлен?
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... ![]() |
|
![]() |
#10 |
Участник
|
А если так
|
|
![]() |
#11 |
Участник
|
AOS - 64, офис - 32.
|
|
![]() |
#12 |
Участник
|
Учетку сделал локальным админом, помогло, объект начал создаваться.
Спасибо. |
|
![]() |
#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" не может быть создан |
|
![]() |
#14 |
Участник
|
Хотя сначала класс работал в пакете три дня, а потом бац и не работает.
|
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Участник
|
Идёте в C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\
Создать -> Новую папку Потом правой кнопкой мышки на папке -> Свойства -> Безопасность -> Изменить и т.д. В вашем случае это надо делать на сервере (т.е. на AOS) и еще не забыть дать права учетной записи, под которой работает AOS, на эту папку (в моем случае это был .Net BC на веб сервере) З.Ы. не забудьте создать папку Desktop в SysWOW64 и дать права учетной записи AOS'а, на эту папку! |
|
![]() |
#17 |
Участник
|
Ой, и DCOM компоненту Excel надо настроить как описано тут
|
|
![]() |
#18 |
Участник
|
Не компилируется джоб приведенный по ссылке. Начал ставит проекты. Сейчас нужна таблица DEV_SysReleaseUpdateScriptsRef.
Заметил одну странность. Мой класс не работает в серверном режиме только ан рабочей базе на aos1. На тестовой и разработческой базе класс работает. Тестовая и разработческая база тоже на aos1. В чем может быть причина? |
|
![]() |
#19 |
Участник
|
может быть тестовое и рабочее приложение работают под разными учетками и у них разные права?
|
|
![]() |
#20 |
Участник
|
Да учетки были разные. Запустил тест под той же учеткой что и рабочая база. На Тесте все равно создается приложение, а на рабочей нет. И там и там сборка 11.0.0.0.
X++: application = new Microsoft.Office.Interop.Excel.ApplicationClass(); // ошибки не возникает ![]() |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|