[Ironpython-users] Importing modules in a restricted AppDomain

Cesar Mello cmello at gmail.com
Wed Mar 7 22:10:52 CET 2012


OK thanks a lot Dino!

Commenting the copy import from decimal.py still doesn't work, maybe it's
failing in other places too. But removing the whole import of decimal.py
all the other things we currently use work perfectly, so it's ok for now!

I'll try to reproduce things in a smaller sample and create work items in
small pieces so we can see one at a time.

Thanks a lot for the help.

Best regards
Mello





On Wed, Mar 7, 2012 at 5:30 PM, Dino Viehland <dinov at microsoft.com> wrote:

>  Ok, that looks like it’s a bug.  We’re using GC handles to implement
> weakref.ref and that is raising the exception on the desktop CLR.  In
> Silverlight we don’t use GCHandle’s but we also don’t get as good of a
> match w/ CPython’s finalization semantics.  ****
>
> ** **
>
> I’m not quite sure where the usage of weakref.ref is coming from but it’s
> probably decimal.py imports the copy module and that’s probably what breaks
> it.  But it looks like decimal isn’t using copy (at least in my normal 2.7
> std lib) so in theory you could just remove that import from the std lib
> module and things might work for you from there (until someone else
> implements copy).****
>
> ** **
>
> To fix Ipy we probably want Microsoft.Dynamic’s WeakHandle class to handle
> the SecurityException and fallback to its Silverlight version of the code
> (or simply use the Silverlight version and not have quite as good
> compatibility, or figure out some other way to get that compatibility).***
> *
>
> ** **
>
> *From:* ironpython-users-bounces+dinov=exchange.microsoft.com at python.org[mailto:
> ironpython-users-bounces+dinov=exchange.microsoft.com at python.org] *On
> Behalf Of *Cesar Mello
> *Sent:* Wednesday, March 07, 2012 12:12 PM
> *To:* Dino Viehland
> *Cc:* ironpython-users at python.org
> *Subject:* Re: [Ironpython-users] Importing modules in a restricted
> AppDomain****
>
> ** **
>
> OK I changed from:****
>
> ** **
>
> m_engine.Execute("import decimal");****
>
> ** **
>
> to ExecuteAndWrap, and the objectOperations.Format returns:****
>
> ** **
>
> <System.Security.SecurityException object at 0x000000000000002B
> [System.Security.SecurityException: Request failed....]>****
>
> ** **
>
> Please notice I'm just importing the standard decimal module. Breaking
> into the first SecurityException I get the stack trace below.****
>
> ** **
>
> Thanks a lot!****
>
> ** **
>
> Best regards****
>
> Mello****
>
> ** **
>
>            mscorlib.dll!System.Security.CodeAccessSecurityEngine.ThrowSecurityException(System.Reflection.RuntimeAssembly
> asm, System.Security.PermissionSet granted, System.Security.PermissionSet
> refused, System.RuntimeMethodHandleInternal rmh,
> System.Security.Permissions.SecurityAction action, object demand,
> System.Security.IPermission permThatFailed) + 0x103 bytes         ****
>
>           mscorlib.dll!System.Security.CodeAccessSecurityEngine.CheckSetHelper(System.Security.PermissionSet
> grants, System.Security.PermissionSet refused,
> System.Security.PermissionSet demands, System.RuntimeMethodHandleInternal
> rmh, object assemblyOrString, System.Security.Permissions.SecurityAction
> action, bool throwException) + 0x160 bytes            ****
>
>           [Native to Managed Transition]          ****
>
>           [Managed to Native Transition]          ****
>
>           IronPython.dll!IronPython.Runtime.WeakRefTracker.CallbackInfo.CallbackInfo(object
> callback, object weakRef) + 0x5c bytes         ****
>
>           IronPython.dll!IronPython.Runtime.WeakRefTracker.ChainCallback(object
> callback, object weakRef) + 0x71 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.WeakRefTracker.WeakRefTracker(object
> callback, object weakRef) + 0x8d bytes     ****
>
>           IronPython.Modules.dll!IronPython.Modules.PythonWeakRef.WeakRefHelpers.InitializeWeakRef(object
> self, object target, object callback) + 0xe1 bytes      ****
>
>           IronPython.Modules.dll!IronPython.Modules.PythonWeakRef.ref.ref(object
> object, object callback) + 0x46 bytes  ****
>
>           IronPython.Modules.dll!IronPython.Modules.PythonWeakRef.ref.ref(object
> object) + 0x35 bytes            ****
>
>            IronPython.Modules.dll!IronPython.Modules.PythonWeakRef.ref.__new__(IronPython.Runtime.CodeContext
> context, IronPython.Runtime.Types.PythonType cls, object object) + 0x1df
> bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,IronPython.Runtime.Types.PythonType,object,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x23a bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run4<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, object arg3) +
> 0x1e4 bytes     ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute3<IronPython.Runtime.CodeContext,object,object,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0, object arg1, object arg2) +
> 0x63a bytes       ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<System.Func<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object,object>,System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x3b3 bytes        ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run4<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, object arg3) +
> 0x1e4 bytes     ****
>
>            IronPython.dll!IronPython.Compiler.Ast.CallExpression.Invoke1Instruction.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x10f bytes ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run3<IronPython.Runtime.PythonFunction,object,object,object>(IronPython.Runtime.PythonFunction
> arg0, object arg1, object arg2) + 0x1b7 bytes           ****
>
>            IronPython.dll!IronPython.Compiler.PythonCallTargets.OriginalCallTarget2(IronPython.Runtime.PythonFunction
> function, object arg0, object arg1) + 0xa8 bytes       ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<System.Func<IronPython.Runtime.PythonFunction,object,object,object>,IronPython.Runtime.PythonFunction,object,object,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x2fb bytes ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run4<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,IronPython.Runtime.PythonFunction,object,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1,
> IronPython.Runtime.PythonFunction arg2, object arg3) + 0x1e4 bytes  ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute3<IronPython.Runtime.CodeContext,IronPython.Runtime.PythonFunction,object,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0,
> IronPython.Runtime.PythonFunction arg1, object arg2) + 0x63a bytes  ****
>
>            IronPython.dll!IronPython.Runtime.Types.LateBoundInitBinder.FastInitSite.CallTarget(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext context, object inst) + 0x102 bytes
> ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute2<IronPython.Runtime.CodeContext,object,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0, object arg1) + 0x5f3 bytes   **
> **
>
>            IronPython.dll!IronPython.Runtime.Types.PythonType.FastTypeSite.CallTarget(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext context, object type) + 0x10f bytes
> ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute2<IronPython.Runtime.CodeContext,object,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0, object arg1) + 0x5f3 bytes   **
> **
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<System.Func<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object>,System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x2fb bytes       ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run3<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2) + 0x1b7 bytes ****
>
>            IronPython.dll!IronPython.Compiler.Ast.CallExpression.Invoke0Instruction.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xbd bytes  ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run5<IronPython.Runtime.PythonFunction,object,object,object,object,object>(IronPython.Runtime.PythonFunction
> arg0, object arg1, object arg2, object arg3, object arg4) + 0x21a bytes
> ****
>
>            IronPython.dll!IronPython.Compiler.PythonCallTargets.OriginalCallTarget4(IronPython.Runtime.PythonFunction
> function, object arg0, object arg1, object arg2, object arg3) + 0xc4 bytes
> ****
>
>            IronPython.dll!IronPython.Runtime.PythonFunction.FunctionCaller<object,string,IronPython.Runtime.PythonTuple,IronPython.Runtime.PythonDictionary>.Call4(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext context, object func, object arg0,
> string arg1, IronPython.Runtime.PythonTuple arg2,
> IronPython.Runtime.PythonDictionary arg3) + 0x11f bytes       ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute6<IronPython.Runtime.CodeContext,object,object,string,IronPython.Runtime.PythonTuple,IronPython.Runtime.PythonDictionary,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0, object arg1, object arg2, string
> arg3, IronPython.Runtime.PythonTuple arg4,
> IronPython.Runtime.PythonDictionary arg5) + 0x70f bytes       ****
>
>            IronPython.dll!IronPython.Runtime.Types.PythonType.NewSite<string,IronPython.Runtime.PythonTuple,IronPython.Runtime.PythonDictionary>.Call(IronPython.Runtime.CodeContext
> context, object typeOrInstance, string arg0, IronPython.Runtime.PythonTuple
> arg1, IronPython.Runtime.PythonDictionary arg2) + 0x95 bytes ****
>
>            IronPython.dll!IronPython.Runtime.Types.PythonType.FastTypeSite<string,IronPython.Runtime.PythonTuple,IronPython.Runtime.PythonDictionary>.CallTarget(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext context, object type, string arg0,
> IronPython.Runtime.PythonTuple arg1, IronPython.Runtime.PythonDictionary
> arg2) + 0xf3 bytes ****
>
>            System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute5<IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonTuple,IronPython.Runtime.PythonDictionary,object>(System.Runtime.CompilerServices.CallSite
> site, IronPython.Runtime.CodeContext arg0, object arg1, string arg2,
> IronPython.Runtime.PythonTuple arg3, IronPython.Runtime.PythonDictionary
> arg4) + 0x6c8 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.MakeClass(IronPython.Runtime.CodeContext
> context, string name, object[] bases, string selfNames,
> IronPython.Runtime.PythonDictionary vars) + 0x5ac bytes          ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.MakeClass(IronPython.Runtime.FunctionCode
> funcCode,
> System.Func<IronPython.Runtime.CodeContext,IronPython.Runtime.CodeContext>
> body, IronPython.Runtime.CodeContext parentContext, string name, object[]
> bases, string selfNames) + 0xf1 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.FunctionCode,System.Func<IronPython.Runtime.CodeContext,IronPython.Runtime.CodeContext>,IronPython.Runtime.CodeContext,string,object[],string,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x483 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run1<IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.FunctionCode
> arg0) + 0x15e bytes   ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x1c8 bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.InitializeModule(string
> fileName, IronPython.Runtime.ModuleContext moduleContext,
> Microsoft.Scripting.ScriptCode scriptCode, IronPython.Runtime.ModuleOptions
> options) + 0x288 bytes         ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options, out
> Microsoft.Scripting.ScriptCode scriptCode) + 0x1b6 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options) + 0x61 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromSourceUnit(IronPython.Runtime.CodeContext
> context, Microsoft.Scripting.SourceUnit sourceCode, string name, string
> path) + 0x65 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadModuleFromSource(IronPython.Runtime.CodeContext
> context, string name, string path) + 0x1b0 bytes      ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromDisk(IronPython.Runtime.CodeContext
> context, string name, string fullName, string str) + 0x13e bytes        **
> **
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPathHook(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path,
> System.Func<IronPython.Runtime.CodeContext,string,string,string,object>
> defaultLoader) + 0x29a bytes        ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPath(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path) + 0xc4
> bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportTopAbsolute(IronPython.Runtime.CodeContext
> context, string name) + 0x1ff bytes  ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportModule(IronPython.Runtime.CodeContext
> context, object globals, string modName, bool bottom, int level) + 0x962
> bytes      ****
>
>           IronPython.dll!IronPython.Modules.Builtin.__import__(IronPython.Runtime.CodeContext
> context, string name, object globals, object locals, object fromlist, int
> level) + 0x1a5 bytes           ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,object,object,object,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x45c bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run7<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonTuple,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, string arg3,
> IronPython.Runtime.PythonDictionary arg4,
> IronPython.Runtime.PythonDictionary arg5, IronPython.Runtime.PythonTuple
> arg6) + 0x280 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext
> context, string fullName, IronPython.Runtime.PythonTuple from, int level) +
> 0x178 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.ImportTop(IronPython.Runtime.CodeContext
> context, string fullName, int level) + 0x3f bytes      ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x212 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run1<IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.FunctionCode
> arg0) + 0x15e bytes   ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x1c8 bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.InitializeModule(string
> fileName, IronPython.Runtime.ModuleContext moduleContext,
> Microsoft.Scripting.ScriptCode scriptCode, IronPython.Runtime.ModuleOptions
> options) + 0x288 bytes         ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options, out
> Microsoft.Scripting.ScriptCode scriptCode) + 0x1b6 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options) + 0x61 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromSourceUnit(IronPython.Runtime.CodeContext
> context, Microsoft.Scripting.SourceUnit sourceCode, string name, string
> path) + 0x65 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadModuleFromSource(IronPython.Runtime.CodeContext
> context, string name, string path) + 0x1b0 bytes      ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromDisk(IronPython.Runtime.CodeContext
> context, string name, string fullName, string str) + 0x13e bytes        **
> **
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPathHook(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path,
> System.Func<IronPython.Runtime.CodeContext,string,string,string,object>
> defaultLoader) + 0x29a bytes        ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPath(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path) + 0xc4
> bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportTopAbsolute(IronPython.Runtime.CodeContext
> context, string name) + 0x1ff bytes  ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportModule(IronPython.Runtime.CodeContext
> context, object globals, string modName, bool bottom, int level) + 0x962
> bytes      ****
>
>           IronPython.dll!IronPython.Modules.Builtin.__import__(IronPython.Runtime.CodeContext
> context, string name, object globals, object locals, object fromlist, int
> level) + 0x1a5 bytes           ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,object,object,object,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x45c bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run7<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonTuple,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, string arg3,
> IronPython.Runtime.PythonDictionary arg4,
> IronPython.Runtime.PythonDictionary arg5, IronPython.Runtime.PythonTuple
> arg6) + 0x280 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext
> context, string fullName, IronPython.Runtime.PythonTuple from, int level) +
> 0x178 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.ImportTop(IronPython.Runtime.CodeContext
> context, string fullName, int level) + 0x3f bytes      ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x212 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run1<IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.FunctionCode
> arg0) + 0x15e bytes   ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x1c8 bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.InitializeModule(string
> fileName, IronPython.Runtime.ModuleContext moduleContext,
> Microsoft.Scripting.ScriptCode scriptCode, IronPython.Runtime.ModuleOptions
> options) + 0x288 bytes         ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options, out
> Microsoft.Scripting.ScriptCode scriptCode) + 0x1b6 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options) + 0x61 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromSourceUnit(IronPython.Runtime.CodeContext
> context, Microsoft.Scripting.SourceUnit sourceCode, string name, string
> path) + 0x65 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadModuleFromSource(IronPython.Runtime.CodeContext
> context, string name, string path) + 0x1b0 bytes      ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromDisk(IronPython.Runtime.CodeContext
> context, string name, string fullName, string str) + 0x13e bytes        **
> **
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPathHook(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path,
> System.Func<IronPython.Runtime.CodeContext,string,string,string,object>
> defaultLoader) + 0x29a bytes        ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPath(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path) + 0xc4
> bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportTopAbsolute(IronPython.Runtime.CodeContext
> context, string name) + 0x1ff bytes  ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportModule(IronPython.Runtime.CodeContext
> context, object globals, string modName, bool bottom, int level) + 0x962
> bytes      ****
>
>           IronPython.dll!IronPython.Modules.Builtin.__import__(IronPython.Runtime.CodeContext
> context, string name, object globals, object locals, object fromlist, int
> level) + 0x1a5 bytes           ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,object,object,object,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x45c bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run7<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonTuple,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, string arg3,
> IronPython.Runtime.PythonDictionary arg4,
> IronPython.Runtime.PythonDictionary arg5, IronPython.Runtime.PythonTuple
> arg6) + 0x280 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext
> context, string fullName, IronPython.Runtime.PythonTuple from, int level) +
> 0x178 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.ImportTop(IronPython.Runtime.CodeContext
> context, string fullName, int level) + 0x3f bytes      ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x212 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run1<IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.FunctionCode
> arg0) + 0x15e bytes   ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x1c8 bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.InitializeModule(string
> fileName, IronPython.Runtime.ModuleContext moduleContext,
> Microsoft.Scripting.ScriptCode scriptCode, IronPython.Runtime.ModuleOptions
> options) + 0x288 bytes         ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options, out
> Microsoft.Scripting.ScriptCode scriptCode) + 0x1b6 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options) + 0x61 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromSourceUnit(IronPython.Runtime.CodeContext
> context, Microsoft.Scripting.SourceUnit sourceCode, string name, string
> path) + 0x65 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadModuleFromSource(IronPython.Runtime.CodeContext
> context, string name, string path) + 0x1b0 bytes      ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromDisk(IronPython.Runtime.CodeContext
> context, string name, string fullName, string str) + 0x13e bytes        **
> **
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPathHook(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path,
> System.Func<IronPython.Runtime.CodeContext,string,string,string,object>
> defaultLoader) + 0x29a bytes        ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPath(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path) + 0xc4
> bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportTopAbsolute(IronPython.Runtime.CodeContext
> context, string name) + 0x1ff bytes  ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportModule(IronPython.Runtime.CodeContext
> context, object globals, string modName, bool bottom, int level) + 0x962
> bytes      ****
>
>           IronPython.dll!IronPython.Modules.Builtin.__import__(IronPython.Runtime.CodeContext
> context, string name, object globals, object locals, object fromlist, int
> level) + 0x1a5 bytes           ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,object,object,object,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x45c bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run7<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonTuple,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, string arg3,
> IronPython.Runtime.PythonDictionary arg4,
> IronPython.Runtime.PythonDictionary arg5, IronPython.Runtime.PythonTuple
> arg6) + 0x280 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext
> context, string fullName, IronPython.Runtime.PythonTuple from, int level) +
> 0x178 bytes            ****
>
>            IronPython.dll!IronPython.Runtime.Operations.PythonOps.ImportBottom(IronPython.Runtime.CodeContext
> context, string fullName, int level) + 0x64 bytes      ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x212 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run1<IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.FunctionCode
> arg0) + 0x15e bytes   ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x1c8 bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.InitializeModule(string
> fileName, IronPython.Runtime.ModuleContext moduleContext,
> Microsoft.Scripting.ScriptCode scriptCode, IronPython.Runtime.ModuleOptions
> options) + 0x288 bytes         ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options, out
> Microsoft.Scripting.ScriptCode scriptCode) + 0x1b6 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.PythonContext.CompileModule(string
> fileName, string moduleName, Microsoft.Scripting.SourceUnit sourceCode,
> IronPython.Runtime.ModuleOptions options) + 0x61 bytes           ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromSourceUnit(IronPython.Runtime.CodeContext
> context, Microsoft.Scripting.SourceUnit sourceCode, string name, string
> path) + 0x65 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadModuleFromSource(IronPython.Runtime.CodeContext
> context, string name, string path) + 0x1b0 bytes      ****
>
>           IronPython.dll!IronPython.Runtime.Importer.LoadFromDisk(IronPython.Runtime.CodeContext
> context, string name, string fullName, string str) + 0x13e bytes        **
> **
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPathHook(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path,
> System.Func<IronPython.Runtime.CodeContext,string,string,string,object>
> defaultLoader) + 0x29a bytes        ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportFromPath(IronPython.Runtime.CodeContext
> context, string name, string fullName, IronPython.Runtime.List path) + 0xc4
> bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportTopAbsolute(IronPython.Runtime.CodeContext
> context, string name) + 0x1ff bytes  ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportModule(IronPython.Runtime.CodeContext
> context, object globals, string modName, bool bottom, int level) + 0x962
> bytes      ****
>
>           IronPython.dll!IronPython.Modules.Builtin.__import__(IronPython.Runtime.CodeContext
> context, string name, object globals, object locals, object fromlist, int
> level) + 0x1a5 bytes           ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,object,object,object,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x45c bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run7<System.Runtime.CompilerServices.CallSite,IronPython.Runtime.CodeContext,object,string,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonDictionary,IronPython.Runtime.PythonTuple,object>(System.Runtime.CompilerServices.CallSite
> arg0, IronPython.Runtime.CodeContext arg1, object arg2, string arg3,
> IronPython.Runtime.PythonDictionary arg4,
> IronPython.Runtime.PythonDictionary arg5, IronPython.Runtime.PythonTuple
> arg6) + 0x280 bytes       ****
>
>           IronPython.dll!IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext
> context, string fullName, IronPython.Runtime.PythonTuple from, int level) +
> 0x178 bytes            ****
>
>           IronPython.dll!IronPython.Runtime.Operations.PythonOps.ImportTop(IronPython.Runtime.CodeContext
> context, string fullName, int level) + 0x3f bytes      ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.FuncCallInstruction<IronPython.Runtime.CodeContext,string,int,object>.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0x212 bytes            ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame
> frame) + 0xf0 bytes   ****
>
>            Microsoft.Dynamic.dll!Microsoft.Scripting.Interpreter.LightLambda.Run2<IronPython.Runtime.CodeContext,IronPython.Runtime.FunctionCode,object>(IronPython.Runtime.CodeContext
> arg0, IronPython.Runtime.FunctionCode arg1) + 0x18f bytes        ****
>
>           IronPython.dll!IronPython.Compiler.PythonScriptCode.RunWorker(IronPython.Runtime.CodeContext
> ctx) + 0x9e bytes  ****
>
>           IronPython.dll!IronPython.Compiler.PythonScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0xb9 bytes     ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Microsoft.Scripting.Runtime.Scope
> scope) + 0x33f bytes ****
>
>           IronPython.dll!IronPython.Compiler.RuntimeScriptCode.Run(Microsoft.Scripting.Runtime.Scope
> scope) + 0x32 bytes     ****
>
>           Microsoft.Scripting.dll!Microsoft.Scripting.SourceUnit.Execute(Microsoft.Scripting.Runtime.Scope
> scope, Microsoft.Scripting.ErrorSink errorSink) + 0xf4 bytes        ****
>
>           Microsoft.Scripting.dll!Microsoft.Scripting.SourceUnit.Execute(Microsoft.Scripting.Runtime.Scope
> scope) + 0x3f bytes     ****
>
>            Microsoft.Scripting.dll!Microsoft.Scripting.Hosting.ScriptSource.Execute(Microsoft.Scripting.Hosting.ScriptScope
> scope) + 0x76 bytes  ****
>
>           Microsoft.Scripting.dll!Microsoft.Scripting.Hosting.ScriptEngine.Execute(string
> expression, Microsoft.Scripting.Hosting.ScriptScope scope) + 0x53 bytes
> ****
>
>           Microsoft.Scripting.dll!Microsoft.Scripting.Hosting.ScriptEngine.ExecuteAndWrap(string
> expression, Microsoft.Scripting.Hosting.ScriptScope scope, out
> System.Runtime.Remoting.ObjectHandle exception) + 0x64 bytes  ****
>
>           [Native to Managed Transition]          ****
>
>           [Managed to Native Transition]          ****
>
>            mscorlib.dll!System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage
> msg, int methodPtr, bool fExecuteInContext) + 0x429 bytes          ****
>
>            mscorlib.dll!System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage
> reqMsg) + 0x107 bytes         ****
>
>            mscorlib.dll!System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage
> reqMsg) + 0x16c bytes          ****
>
>            mscorlib.dll!System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessageCallback(object[]
> args) + 0x1ba bytes   ****
>
>           [Native to Managed Transition]          ****
>
>           [Managed to Native Transition]          ****
>
>            mscorlib.dll!System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage
> reqMsg) + 0x113 bytes         ****
>
>            mscorlib.dll!System.Runtime.Remoting.Channels.ChannelServices.SyncDispatchMessage(System.Runtime.Remoting.Messaging.IMessage
> msg) + 0x167 bytes   ****
>
>           mscorlib.dll!System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch(byte[]
> reqStmBuff, System.Runtime.Remoting.Messaging.SmuggledMethodCallMessage
> smuggledMcm, out
> System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage smuggledMrm)
> + 0xc8 bytes   ****
>
>            mscorlib.dll!System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(object[]
> args) + 0x92 bytes     ****
>
>           [Appdomain Transition]          ****
>
>           mscorlib.dll!System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatch(byte[]
> reqStmBuff, System.Runtime.Remoting.Messaging.SmuggledMethodCallMessage
> smuggledMcm, out
> System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage smuggledMrm)
> + 0xa0 bytes   ****
>
>            mscorlib.dll!System.Runtime.Remoting.Channels.CrossAppDomainSink.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage
> reqMsg) + 0x13b bytes         ****
>
>            mscorlib.dll!System.Runtime.Remoting.Proxies.RemotingProxy.CallProcessMessage(System.Runtime.Remoting.Messaging.IMessageSink
> ms, System.Runtime.Remoting.Messaging.IMessage reqMsg,
> System.Runtime.Remoting.Contexts.ArrayWithSize proxySinks,
> System.Threading.Thread currentThread,
> System.Runtime.Remoting.Contexts.Context currentContext, bool
> bSkippingContextChain) + 0x9e bytes           ****
>
>            mscorlib.dll!System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(System.Runtime.Remoting.Messaging.IMethodCallMessage
> reqMcmMsg, bool useDispatchMessage, int callType) + 0x525 bytes         **
> **
>
>           mscorlib.dll!System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(ref
> System.Runtime.Remoting.Proxies.MessageData msgData, int type) + 0x5fa bytes
> ****
>
> >          Elipse.Epm.Scripting.dll!Elipse.Epm.Scripting.ExpressionEvaluator.ImportStandardModules(Microsoft.Scripting.Hosting.ScriptScope
> scope) Line 181 + 0x3d bytes           C#****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> On Wed, Mar 7, 2012 at 4:47 PM, Dino Viehland <dinov at microsoft.com> wrote:
> ****
>
> After adding the reflection permissions I wonder what the exception is.
> Instead of doing Engine.Execute(string, ScriptScope) can you instead call
> ExecuteAndWrap(string, ScriptScope, out ObjectHandle)?  In general when
> you’re working with the remote domain you’ll want to use the *Wrap versions
> to avoid serializing results back into the local domain (which can fail).
> ****
>
>  ****
>
> I’m not sure if we’re trying to serialize an exception object here or the
> result of your execution, but either way one of those is failing.  You
> should be able to check and see if the handles are null, and can also pass
> them back into the remote domain for formatting (using either
> ObjectOperations.Format or ExceptionOperations.FormatException) and just
> get a string back.****
>
>  ****
>
> *From:* Cesar Mello [mailto:cmello at gmail.com]
> *Sent:* Wednesday, March 07, 2012 11:38 AM
> *To:* Dino Viehland
> *Cc:* ironpython-users at python.org****
>
>
> *Subject:* Re: [Ironpython-users] Importing modules in a restricted
> AppDomain****
>
>  ****
>
> Thanks a lot for the help guys. I'm trying to walk on my own, but just for
> a quick feedback I've used the code suggested and now when I run "import
> decimal" I get a MethodAccessException. I presumed it was safe to add all
> the Reflection permissions and then I get an unhandled
> ArgumentNullException (second stack trace). There is a bunch of internal
> SecurityExceptions that are handled in the meantime though. I'll try to
> debug this using the Console in a restricted AppDomain, so please don't
> bother to answer me if I am doing some silly mistake.****
>
>  ****
>
> Thanks and best regards!****
>
> Mello****
>
>  ****
>
> Stack trace 1 (MethodAccessException)****
>
>  ****
>
> Attempt by method
> 'Microsoft.Scripting.Utils.ReflectionUtils.CreateDelegate(System.Reflection.MethodInfo,
> System.Type, System.Object)' to access method
> 'IronPython.Compiler.Ast.UncollectableCompilationMode.NextSite<System.Func`4<System.Runtime.CompilerServices.CallSite,System.Object,IronPython.Runtime.CodeContext,System.Object>>(System.Dynamic.DynamicMetaObjectBinder)'
> failed.****
>
>  ****
>
>    at System.Delegate.BindToMethodInfo(Object target, IRuntimeMethodInfo
> method, RuntimeType methodType, DelegateBindingFlags flags)****
>
>    at System.Delegate.CreateDelegate(Type type, Object firstArgument,
> MethodInfo method, Boolean throwOnBindFailure)****
>
>    at Microsoft.Scripting.Utils.ReflectionUtils.CreateDelegate(MethodInfo
> methodInfo, Type delegateType, Object target)****
>
>    at Microsoft.Scripting.Utils.ReflectionUtils.CreateDelegate(MethodInfo
> methodInfo, Type delegateType)****
>
>    at
> IronPython.Compiler.Ast.UncollectableCompilationMode.DelegateCache.MakeDelegateType(Type
> retType, Expression[] args)****
>
>    at
> IronPython.Compiler.Ast.UncollectableCompilationMode.ReduceDynamic(DynamicMetaObjectBinder
> binder, Type retType, Expression arg0, Expression arg1)****
>
>    at IronPython.Compiler.Ast.DynamicGetMemberExpression.Reduce()****
>
>    at System.Linq.Expressions.Expression.ReduceAndCheck()****
>
>    at System.Linq.Expressions.Expression.VisitChildren(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression
> node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.VisitExtension(Expression
> node)****
>
>    at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
> ****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.Expression.VisitChildren(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression
> node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.VisitExtension(Expression
> node)****
>
>    at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
> ****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitBlock(BlockExpression
> node)****
>
>    at System.Linq.Expressions.BlockExpression.Accept(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitBlock(BlockExpression
> node)****
>
>    at System.Linq.Expressions.BlockExpression.Accept(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.Expression.VisitChildren(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression
> node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.VisitExtension(Expression
> node)****
>
>    at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
> ****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitBlock(BlockExpression
> node)****
>
>    at System.Linq.Expressions.BlockExpression.Accept(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.Expression.VisitChildren(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression
> node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.VisitExtension(Expression
> node)****
>
>    at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
> ****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at System.Linq.Expressions.ExpressionVisitor.VisitBlock(BlockExpression
> node)****
>
>    at System.Linq.Expressions.BlockExpression.Accept(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.RewriteTryBody(TryExpression
> node, LabelTarget ehLabel)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.RewriteTryCatch(TryExpression
> node)****
>
>    at
> Microsoft.Scripting.Ast.LightExceptionRewriter.VisitTry(TryExpression node)
> ****
>
>    at System.Linq.Expressions.TryExpression.Accept(ExpressionVisitor
> visitor)****
>
>    at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)****
>
>    at Microsoft.Scripting.Ast.LightExceptionRewriter.Rewrite(Expression
> expr)****
>
>    at Microsoft.Scripting.Ast.LightExceptionConvertingExpression.Reduce()*
> ***
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileExtensionExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileMethodCallExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileExtensionExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockStart(BlockExpression
> node)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockStart(BlockExpression
> node)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileExtensionExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockStart(BlockExpression
> node)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileExtensionExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileTryExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileTryExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileAsVoid(Expression expr)
> ****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockStart(BlockExpression
> node)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileBlockExpression(Expression
> expr, Boolean asVoid)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileLabelExpression(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileNoLabelPush(Expression
> expr)****
>
>    at Microsoft.Scripting.Interpreter.LightCompiler.Compile(Expression
> expr)****
>
>    at
> Microsoft.Scripting.Interpreter.LightCompiler.CompileTop(LightLambdaExpression
> node)****
>
>    at Microsoft.Scripting.Ast.LightExpression`1.Compile(Int32
> compilationThreshold)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Compile()****
>
>    at IronPython.Compiler.RuntimeScriptCode.EnsureCompiled()****
>
>    at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)****
>
>    at IronPython.Runtime.PythonContext.InitializeModule(String fileName,
> ModuleContext moduleContext, ScriptCode scriptCode, ModuleOptions options)
> ****
>
>    at IronPython.Runtime.PythonContext.CompileModule(String fileName,
> String moduleName, SourceUnit sourceCode, ModuleOptions options,
> ScriptCode& scriptCode)****
>
>    at IronPython.Runtime.PythonContext.CompileModule(String fileName,
> String moduleName, SourceUnit sourceCode, ModuleOptions options)****
>
>    at IronPython.Runtime.Importer.LoadFromSourceUnit(CodeContext context,
> SourceUnit sourceCode, String name, String path)****
>
>    at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext
> context, String name, String path)****
>
>    at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String
> name, String fullName, String str)****
>
>    at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context,
> String name, String fullName, List path, Func`5 defaultLoader)****
>
>    at IronPython.Runtime.Importer.ImportFromPath(CodeContext context,
> String name, String fullName, List path)****
>
>    at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context,
> String name)****
>
>    at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object
> globals, String modName, Boolean bottom, Int32 level)****
>
>    at IronPython.Modules.Builtin.__import__(CodeContext context, String
> name, Object globals, Object locals, Object fromlist, Int32 level)****
>
>    at System.Func`7.Invoke(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6
> arg6)****
>
>    at
> Microsoft.Scripting.Interpreter.FuncCallInstruction`7.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame
> frame)****
>
>    at
> Microsoft.Scripting.Interpreter.LightLambda.Run7[T0,T1,T2,T3,T4,T5,T6,TRet](T0
> arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)****
>
>    at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context,
> String fullName, PythonTuple from, Int32 level)****
>
>    at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext
> context, String fullName, Int32 level)****
>
>    at System.Func`4.Invoke(T1 arg1, T2 arg2, T3 arg3)****
>
>    at
> Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0
> arg0, T1 arg1)****
>
>    at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)****
>
>    at IronPython.Compiler.PythonScriptCode.Run(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)****
>
>    at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink
> errorSink)****
>
>    at Microsoft.Scripting.SourceUnit.Execute(Scope scope)****
>
>    at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope)*
> ***
>
>    at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String expression,
> ScriptScope scope)****
>
>    at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String expression,
> ScriptScope scope)****
>
>    at
> Elipse.Epm.Scripting.ExpressionEvaluator.ImportStandardModules(ScriptScope
> scope) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 174****
>
>    at Elipse.Epm.Scripting.ExpressionEvaluator.AddExpression(Expression
> expression, Object clientHandle) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 82****
>
>  ****
>
>  ****
>
>  ****
>
> --------------------------------------------------****
>
> After adding Reflection permissions;****
>
>  ****
>
> at System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[]
> methodInstantiation)****
>
>    at
> System.Reflection.MemberInfoSerializationHolder.GetRealObject(StreamingContext
> context)****
>
>  ****
>
>    at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String expression,
> ScriptScope scope)****
>
>    at
> Elipse.Epm.Scripting.ExpressionEvaluator.ImportStandardModules(ScriptScope
> scope) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 174****
>
>    at Elipse.Epm.Scripting.ExpressionEvaluator.AddExpression(Expression
> expression, Object clientHandle) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 82****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> On Wed, Mar 7, 2012 at 2:34 PM, Dino Viehland <dinov at microsoft.com> wrote:
> ****
>
> Nope, ideally IronPython’s assemblies are not trusted.  In general
> IronPython’s assemblies are “security transparent” which means they don’t
> affect any security decisions made by the CLR.  If you gave them full trust
> then the user could do something like file(‘C:\\bad_file.txt’, ‘w+’).  The
> security transparency means that IronPython can contain a bunch of code for
> accessing files and stuff but that code doesn’t need to be audited for
> security because we don’t have any permissions of our own.****
>
>  ****
>
> You might want to try doing something like:****
>
>  ****
>
>             AppDomainSetup info = new AppDomainSetup();****
>
>             info.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;*
> ***
>
>             info.ApplicationName = "Test";****
>
>             ****
>
>             Evidence evidence = new Evidence();****
>
>             evidence.AddHost(new Zone(SecurityZone.Internet));****
>
>  ****
>
>             System.Security.PermissionSet permSet =
> SecurityManager.GetStandardSandbox(evidence);****
>
>             AppDomain newDomain = AppDomain.CreateDomain("test", evidence,
> info, permSet, null);****
>
>             ****
>
>             // create runtime in partial trust...****
>
>             ScriptRuntime runtime = Python.CreateRuntime(newDomain);****
>
>  ****
>
> Which will run the code in the internet zone which should be a safe set of
> permissions – you might need to add in your path access to this, but we use
> this setup in a test case so it definitely works.****
>
>  ****
>
> *From:* ironpython-users-bounces+dinov=microsoft.com at python.org [mailto:
> ironpython-users-bounces+dinov=microsoft.com at python.org] *On Behalf Of *Cesar
> Mello
> *Sent:* Wednesday, March 07, 2012 5:17 AM
> *To:* ironpython-users at python.org
> *Subject:* Re: [Ironpython-users] Importing modules in a restricted
> AppDomain****
>
>  ****
>
> Hi,****
>
>  ****
>
> Must I grant fulltrust permissions to the IronPython assemblies? Sorry for
> the basic question, but will the scripts still be restricted in this case?
> ****
>
>  ****
>
> Thank you a lot. This is a bit urgent for me, because it's the last step
> before I can finish the prototype with IronPython and let it be accepted
> for embedding in our product.****
>
>  ****
>
> Best regards!****
>
> Mello****
>
>  ****
>
>  ****
>
> On Mon, Mar 5, 2012 at 4:26 PM, Cesar Mello <cmello at gmail.com> wrote:****
>
> Please ignore my previous question. Sucessfully added FileIOPermission
> with PathDiscovery and it worked:****
>
>  ****
>
>       var pythonLibsPath = ExpressionEvaluator.GetPythonLibsPath();****
>
>       permissionSet.AddPermission(new
> FileIOPermission(FileIOPermissionAccess.PathDiscovery |
> FileIOPermissionAccess.Read, pythonLibsPath));****
>
>  ****
>
>  ****
>
> Now I'm facing some problem with Emit permissions.
> Added ReflectionPermission(PermissionState.Unrestricted) but still doesn't
> work.****
>
>  ****
>
> I'm using .NET 4 in this project at work. Sorry if the subject is too
> general and off-topic.****
>
>  ****
>
> Best regards****
>
> Mello****
>
>  ****
>
> Message: Request for the permission of type
> 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.****
>
>  ****
>
> at System.Security.CodeAccessSecurityEngine.Check(Object demand,
> StackCrawlMark& stackMark, Boolean isPermSet)****
>
>    at System.Security.CodeAccessPermission.Demand()****
>
>    at
> System.Reflection.Emit.AssemblyBuilder.DefineDynamicModuleInternalNoLock(String
> name, Boolean emitSymbolInfo, StackCrawlMark& stackMark)****
>
>    at
> System.Reflection.Emit.AssemblyBuilder.DefineDynamicModuleInternal(String
> name, Boolean emitSymbolInfo, StackCrawlMark& stackMark)****
>
>    at System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(String
> name, Boolean emitSymbolInfo)****
>
>    at Microsoft.Scripting.Generation.AssemblyGen..ctor(AssemblyName name,
> String outDir, String outFileExtension, Boolean isDebuggable,
> PortableExecutableKinds peKind, ImageFileMachine machine)****
>
>    at Microsoft.Scripting.Generation.AssemblyGen..ctor(AssemblyName name,
> String outDir, String outFileExtension, Boolean isDebuggable)****
>
>    at Microsoft.Scripting.Generation.Snippets.CreateNewAssembly(String
> nameSuffix, Boolean emitSymbols)****
>
>    at Microsoft.Scripting.Generation.Snippets.GetOrCreateAssembly(Boolean
> emitSymbols, AssemblyGen& assembly)****
>
>    at Microsoft.Scripting.Generation.Snippets.GetAssembly(Boolean
> emitSymbols)****
>
>    at Microsoft.Scripting.Generation.Snippets.DefineType(String name, Type
> parent, Boolean preserveName, Boolean emitDebugSymbols)****
>
>    at
> Microsoft.Scripting.Generation.CompilerHelpers.CompileToMethod(LambdaExpression
> lambda, DebugInfoGenerator debugInfoGenerator, Boolean emitDebugSymbols)**
> **
>
>    at
> Microsoft.Scripting.Generation.CompilerHelpers.CompileToMethod[T](Expression`1
> lambda, DebugInfoGenerator debugInfoGenerator, Boolean emitDebugSymbols)**
> **
>
>    at
> Microsoft.Scripting.Generation.CompilerHelpers.Compile[T](Expression`1
> lambda, Boolean emitDebugSymbols)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Compile()****
>
>    at IronPython.Compiler.RuntimeScriptCode.EnsureCompiled()****
>
>    at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)****
>
>    at IronPython.Runtime.PythonContext.InitializeModule(String fileName,
> ModuleContext moduleContext, ScriptCode scriptCode, ModuleOptions options)
> ****
>
>    at IronPython.Runtime.PythonContext.CompileModule(String fileName,
> String moduleName, SourceUnit sourceCode, ModuleOptions options,
> ScriptCode& scriptCode)****
>
>    at IronPython.Runtime.PythonContext.CompileModule(String fileName,
> String moduleName, SourceUnit sourceCode, ModuleOptions options)****
>
>    at IronPython.Runtime.Importer.LoadFromSourceUnit(CodeContext context,
> SourceUnit sourceCode, String name, String path)****
>
>    at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext
> context, String name, String path)****
>
>    at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String
> name, String fullName, String str)****
>
>    at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context,
> String name, String fullName, List path, Func`5 defaultLoader)****
>
>    at IronPython.Runtime.Importer.ImportFromPath(CodeContext context,
> String name, String fullName, List path)****
>
>    at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context,
> String name)****
>
>    at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object
> globals, String modName, Boolean bottom, Int32 level)****
>
>    at IronPython.Modules.Builtin.__import__(CodeContext context, String
> name, Object globals, Object locals, Object fromlist, Int32 level)****
>
>    at
> Microsoft.Scripting.Interpreter.FuncCallInstruction`7.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame
> frame)****
>
>    at
> Microsoft.Scripting.Interpreter.LightLambda.Run7[T0,T1,T2,T3,T4,T5,T6,TRet](T0
> arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)****
>
>    at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context,
> String fullName, PythonTuple from, Int32 level)****
>
>    at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext
> context, String fullName, Int32 level)****
>
>    at
> Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame
> frame)****
>
>    at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0
> arg0, T1 arg1)****
>
>    at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)****
>
>    at IronPython.Compiler.PythonScriptCode.Run(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)****
>
>    at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope)****
>
>    at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink
> errorSink)****
>
>    at Microsoft.Scripting.SourceUnit.Execute(Scope scope)****
>
>    at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope)*
> ***
>
>    at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String expression,
> ScriptScope scope)****
>
>    at Microsoft.Scripting.Hosting.ScriptEngine.Execute(String expression,
> ScriptScope scope)****
>
>    at
> Elipse.Epm.Scripting.ExpressionEvaluator.ImportStandardModules(ScriptScope
> scope) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 174****
>
>    at Elipse.Epm.Scripting.ExpressionEvaluator.AddExpression(Expression
> expression, Object clientHandle) in
> D:\proj\epm_5527\Source\EpmCommon\Elipse.Epm.Scripting\ExpressionEvaluator.cs:line
> 82****
>
>  ****
>
>  ****
>
> On Mon, Mar 5, 2012 at 3:18 PM, Cesar Mello <cmello at gmail.com> wrote:****
>
> Hi!****
>
>  ****
>
> Is there a way to load modules without giving permission to the AppDomain
> to read .py files from disk?****
>
>  ****
>
> I need to run user code with limited permissions. They should be able to
> do some simple calculations. But when I try to import a module like
> 'decimal', filesystem access permission is required. ****
>
>  ****
>
> Thank you a lot for the attention!****
>
>  ****
>
> Best regards****
>
> Mello****
>
>  ****
>
>  ****
>
>  ****
>
> ** **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20120307/5bb40c3e/attachment.html>


More information about the Ironpython-users mailing list