AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2024, 17:46   #1  
Lankey is offline
Lankey
Участник
 
54 / 13 (1) ++
Регистрация: 19.05.2020
Как работают InteropPermission и fileIOPermission?
AX2009
Помогите, пожалуйста, понять, как работают InteropPermission и fileIOPermission?

Есть Job. Мне нужно получить путь к временной папке, независимо от того, где исполняется код: на сервере или клиенте.
Для тестирования написала Job запускаю через menuItem c calledFrom = server для исполнения на сервере. И просто по F5 для исполнения на кленте

X++:
static server void My_test (Args _args)
{
    FilePath                      tmpPath;
    FileIOPermission        fileIOPermission;
    InteropPermission       perm;
;
   // perm = new InteropPermission(InteropKind::ClrInterop);
   // perm.assert();
    fileIOPermission = new FileIOPermission('','r');
    fileIOPermission.assert();
    if(isRunningOnServer())
    {
        info(strFmt('Server'));
        tmpPath = WinAPIServer::getTempPath();
    }
    else
    {
        info(strFmt('Client'));
        tmpPath = WinAPI::getTempPath(); 
    }
    //CodeAccessPermission::revertAssert();
    info(strFmt('tmpPath %1', tmpPath));

Вопросы
1 ) Почему, если я убираю
X++:
    fileIOPermission = new FileIOPermission('','r');
    fileIOPermission.assert();
перед if(isRunningOnServer()) , то
получаю ошибку
Request for the permission of type 'FileIOPermission' failed.
(S)\Classes\FileIOPermission\demand
(S)\Classes\WinAPIServer\getTempPath - line 13

То есть, если в моем коде есть FileIOPermission, то вторичный FileIOPermission, что внутри tmpPath = WinAPIServer::getTempPath(); отрабатывает. А как только свои две строки убираю, то выдается эта ошибка.

2) Почему я не могу раскомментировать строки
X++:
// perm = new InteropPermission(InteropKind::ClrInterop);
   // perm.assert();
Как только я это делаю, то получаю ошибку (причем, и когда на клиенте исполяняю, и когда на сервере)
Multiple calls to CodeAccessPermission.Assert
(S)\Classes\FileIOPermission\assert
(S)\Jobs\My_test - line 38
(S)\Classes\MenuFunction\runServer

Спасибо

Последний раз редактировалось Lankey; 21.03.2024 в 17:49.
Теги
ax2009

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
InteropPermission в пакетном режиме jonny DAX: Программирование 7 03.09.2020 09:49
InteropPermission vizir DAX: Программирование 3 08.11.2017 11:07
Delete actions не работают по невидимым полям McArrow DAX: Программирование 3 02.03.2013 09:58
Сбой запроса на разрешение типа "FileIOPermission" Silphidae DAX: Программирование 17 13.04.2009 14:30
Исследование - Как работают разные типы Delete Actions. sguryev DAX: База знаний и проекты 1 10.05.2002 15:46

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:00.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.