04.06.2012, 12:33 | #1 |
Участник
|
InteropPermission в пакетном режиме
Всем доброго времени суток.
Опять избитая тема - Сбой запроса на разрешение типа "InteropPermission". при выполнении кода с использованием .NET в пакетном режиме. new InteropPermission(InteropKind::ClrInterop).assert() вызываю, при запуске руками на стороне сервера все ок, но в пакетном режиме валится ошибка, при чем "через раз". Кто подскажет где искать проблему? |
|
04.06.2012, 12:40 | #2 |
Участник
|
Цитата:
Сообщение от jonny
Всем доброго времени суток.
Опять избитая тема - Сбой запроса на разрешение типа "InteropPermission". при выполнении кода с использованием .NET в пакетном режиме. new InteropPermission(InteropKind::ClrInterop).assert() вызываю, при запуске руками на стороне сервера все ок, но в пакетном режиме валится ошибка, при чем "через раз". Кто подскажет где искать проблему? |
|
04.06.2012, 13:23 | #3 |
Молодой, подающий надежды
|
А CLR не генерит никакой осмысленной ошибки?
X++: try
{
}
catch (Exception::CLRError)
{
error(AifUtil::getClrErrorMessage());
} |
|
04.06.2012, 13:34 | #4 |
Участник
|
Использую пространство имен System.Data.SqlClient - читаю данные из внешнего источника.
Нет, никакого осмысленного сообщения не получаю, валится все на попытке создать экземпляр SqlCommand X++: command = new System.Data.SqlClient.SqlCommand(); |
|
04.06.2012, 14:03 | #5 |
MCT
|
Если до этого момента, все работало, то смотрите в сторону изменения пароля учетки, из-под которой все крутится, названия сервера. На самом деле странно - зачем было "скульный" код оборачивать в сборку, а не в хранимую процедуру. Ну да ладно.
__________________
Axapta book for developer |
|
04.06.2012, 14:51 | #6 |
Участник
|
Выходит, дело не в InteropPermission, раз валится "через раз"? Как именно валится-то, какой Exception (CLRError/Internal/..)? Если "записать" трассировку кода, когда вылезает ошибка, что там видно?
|
|
03.09.2020, 09:29 | #7 |
Участник
|
Подскажите а если в пакетном режиме ошибка генерируется вот тут:
X++: static str getEnvironmentVar(str _env) { System.String var_NET; str env, var; ; env = strReplace(_env, '%', ''); try { var_NET = System.Environment::GetEnvironmentVariable(env); // <--- ошибка if (!CLRInterop::isNull(var_NET)) { var = CLRInterop::getAnyTypeForObject(var_NET); } else { error(strFmt('Environment variable "%1" is not set', _env)); return ''; } } catch (Exception::CLRError) { error(strFmt('Other CLR error for environment variable "%1"', _env)); return ''; } return var; } И никакие исключения ее не отлавливают: Сбой запроса на разрешение типа "InteropPermission". (S)\Classes\InteropPermission\demand (S)\Classes\CLRInterop\staticInvoke (S)\Classes\Global\getEnvironmentVar - line 11 Не подскажете как ее отловить? DAX2009 |
|
03.09.2020, 09:49 | #8 |
Участник
|
Сразу после try добавьте new InteropPermission(InteropKind::ClrInterop).assert()
Цитата:
Сообщение от oleggy
Подскажите а если в пакетном режиме ошибка генерируется вот тут:
X++: static str getEnvironmentVar(str _env) { System.String var_NET; str env, var; ; env = strReplace(_env, '%', ''); try { var_NET = System.Environment::GetEnvironmentVariable(env); // <--- ошибка if (!CLRInterop::isNull(var_NET)) { var = CLRInterop::getAnyTypeForObject(var_NET); } else { error(strFmt('Environment variable "%1" is not set', _env)); return ''; } } catch (Exception::CLRError) { error(strFmt('Other CLR error for environment variable "%1"', _env)); return ''; } return var; } И никакие исключения ее не отлавливают: Сбой запроса на разрешение типа "InteropPermission". (S)\Classes\InteropPermission\demand (S)\Classes\CLRInterop\staticInvoke (S)\Classes\Global\getEnvironmentVar - line 11 Не подскажете как ее отловить? DAX2009
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|