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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.06.2007, 04:05   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
SysFileDeployment* FIX
Цитата:
Сообщение от ZhanR Посмотреть сообщение
блин, чета не получается у меня решить задачу с использованием SysFileDeployer. В общем у меня проблема такая - DAX4.0
при отладке дохожу при проверке версии файла (даты модификации) до info.add(), в нем _txt = «Сбой запроса на разрешение типа "FileIOPermission". кстати, в метод info.add() курсор каким-то чудом переходит сразу после кода в методе WinAPIServer.createfile
В данном случае «чудо» - это исключение, которое ловится в блоке try цикла проверки классов-наследников SysFileDeployment.
Цитата:
Сообщение от ZhanR Посмотреть сообщение
данный кусок я закомментировал и только после этого вроде как при входе аксапта спрашивает "В клиентской установке отсутствуют файлы, необходимые для работы Microsoft Dynamics"
А вот это зря лучше вернуть, как было...
Цитата:
Сообщение от ZhanR Посмотреть сообщение
при подтверждении установки возникает ошибка. уже не знаю куда дальше копать...
Копать, разумеется, следует в сторону документа Writing Secure X++ Code. Если его почитать и сопоставить с тем, что творится в SysFileDeployment* в AX4, то выяснится, что разработчики там.. как бы помягче сказать.. накосячили Видимо, недаром из SysFileDeployer.filesToDeploy() вытерли все ссылки на соотв. классы - чтобы просто не делать свои же косяки заметными сразу при установке.
Теперь ведь в AX4 использовать для работы на сервере «опасные API» просто так нельзя - надо явно запрашивать разрешения на это
Цитата:
Implementing Code Access Security
Code access security must be implemented by the dangerous API owner and all consumers of the dangerous API.
1. The owner secures the dangerous API by implementing a specific type of permission class and calling the demand() method on that class
2. Each API consumer must explicitly request permission to invoke a secured dangerous API by calling the assert() method on the permission class.
Application code will break unless both of these steps are completed.
И в части вызовов demand() в новоиспеченном WinAPIServer все в порядке. А вот в классах SysFileDeployment* требования по вызову assert() соблюдены не везде - видимо, не хватило времени дотестировать. Если конкретно, то:
  • в SysFileDeploymentFile.serverVersion() нет соотв. вызова assert() перед вызовом WinAPIServer::getFileModifiedDate();
  • в SysFileDeployment.getServerFileTimeAccessed()/Modified()/Created() нет соотв. вызова assert() перед вызовом WinAPIServer::getFileTime();
  • в SysFileDeployment.isNameValid() полный путь к файлу разбивается с помощью fileNameSplit() на составляющие, после чего между именем и расширением вставляется лишняя точка (fileNameSplit() и так возвращает расширение с начальной точкой) - в результате isNameValid() всегда возвращает false, из-за чего опять-таки не происходя соотв. вызовы assert();
  • ну и, наконец, SysFileDeployment.sourcePath() по умолчанию возвращает xInfo::directory(DirectoryType::Include), а как нам известно, результат этого вызова сильно различается в зависимости от того, происходит ли он на клиенте или на сервере; разумеется, по закону подлости работа SysFileDeploy* построена так, что SysFileDeployment.sourcePath() вызывается в обоих контекстах и, соотв., выдает разные результаты, что окончательно рушит логику работы.
Во вложении - небольшие модификации, с помощью которых удалось заставить работать SysFileDeployer с тестовым классом-наследником SysFileDeploymentFile.
Вложения
Тип файла: zip AX4_SysFileDeploymentFIX.zip (1.8 Кб, 188 просмотров)

Последний раз редактировалось gl00mie; 12.06.2007 в 04:11. Причина: форматирование :)
За это сообщение автора поблагодарили: mazzy (15), belugin (5), kashperuk (10), alex55 (1).
Теги
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[ANN] Sidax 0.3.6 - многоцелевая боковая панель для Axapta belugin DAX: База знаний и проекты 104 30.06.2008 11:32
axaptafreak: Tabax: tabbed Axapta interface !!!! Blog bot DAX Blogs 0 10.11.2006 01:14
Панель задач в Аксапте wb DAX: Программирование 14 18.04.2006 17:13
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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