Показать сообщение отдельно
Старый 02.11.2011, 16:56   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
  1. Local Service на то и local - у него нету права аутентифицироваться в сети под учеткой локального компа, поэтому выданные для aos$ права тут не сработают; надо тогда уж запускать AOS под Network Service (как он у вас к СУБД под Local Service подключается, интересно?).
  2. Если код удаления файла вызывается на сервере, то надо использовать не WinAPI, а WinAPIServer.
  3. Для работы с файлами на сервере надо предварительно запрашивать разрешение, например:
    X++:
    #macrolib.File
    new FileIOPermission(fileName, #io_write).assert();
    WinAPIServer::deleteFile(fileName);
Судя по стеку вызовов, код WinAPI::deleteFileOld() пытается дернуть функцию DLL - на это тоже нужно на сервере запрашивать разрешение, НО если используется 64-битный AOS, то загрузить стороннюю DLL и дернуть ее экспортированную функцию не получится, см. Using the DLLFunction kernel class on a 64bit Dynamics AX 2009 AOS. Вообще же стоит ознакомиться с Dynamics AX Writing Secure X++ Code
За это сообщение автора поблагодарили: Poleax (1).