|
04.12.2014, 06:07 | #1 |
Участник
|
Обработать файл XML в пакетной обработке
Доброе время суток, всяк здесь блуждающий....
По кнопке обрабатывается XML файл. Усе хорошо, файл обрабатывается и формируется еще один файл-отчет. В пакетной обработке - глухота. Выдается оБшибка Сбой запроса на разрешение типа "InteropPermission". (S)\Classes\InteropPermission\demand (S)\Classes\DLL\new (S)\Classes\WinAPIServer\crFindFirstFile - line 5 и еще Объект "DLL" не может быть создан |
|
04.12.2014, 07:46 | #2 |
Участник
|
WinAPIServer\crFindFirstFile - самодельный метод ?
не хватает вызова new InteropPermission(InteropKind:llInterop).assert()
__________________
Дмитрий |
|
04.12.2014, 08:08 | #3 |
Участник
|
У меня вот такой процЭсссссс:
new FileIOPermission(filePath,'r').assert(); info('isRunningOnServer1'); [fileHandle, fileFind] = WinapiServer::crFindFirstFile(filePath + '\\*.xml'); info('isRunningOnServer2 '+ fileFind); CodeAccessPermission::revertAssert(); |
|
04.12.2014, 10:14 | #4 |
Участник
|
Внутрь метода WinAPIServer\crFindFirstFile попробуйте вставить new InteropPermission(InteropKind:llInterop).assert() перед обращением к dll
__________________
Дмитрий |
|
04.12.2014, 12:11 | #5 |
Участник
|
Цитата:
Внутрь метода WinAPIServer\crFindFirstFile попробуйте вставить new InteropPermission(InteropKind:llInterop).assert() перед обращением к dll
|
|
04.12.2014, 13:06 | #6 |
Участник
|
Цитата:
doc = new XMLDocument();
doc.load(_fileName); Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand |
|
04.12.2014, 13:36 | #7 |
Участник
|
перед вызовом "doc.load(_fileName);" добавь
X++: new FileIOPermission(_fileName,'r').assert();
__________________
Ален ноби, ностра алис. Что означает - если один человек построил, другой завсегда разобрать может. |
|
04.12.2014, 10:53 | #8 |
Участник
|
Не все WinAPI-функции работает на сервере, я использовал:
X++: public server static container findMatchingFiles( str _folderPath, str _filePattern = '*.*' ) { System.IO.DirectoryInfo directory; System.IO.FileInfo[] files; System.IO.FileInfo file; InteropPermission permission; str fileName; counter filesCount; counter loop; container mathchingFiles; ; permission = new InteropPermission( InteropKind::ClrInterop ); permission.assert(); directory = new System.IO.DirectoryInfo( _folderPath ); files = directory.GetFiles( _filePattern ); filesCount = files.get_Length(); for (loop = 0; loop < filesCount; loop++) { file = files.GetValue(loop); fileName = file.get_FullName(); mathchingFiles = conins(mathchingFiles, conlen(mathchingFiles) + 1, fileName); } CodeAccessPermission::revertAssert(); return mathchingFiles; }
__________________
Айрат Вильданов. skype: vildanov.a |
|