我正在使用Boo解释器并尝试将其嵌入到一个简单的程序中。一切正常,直到我试图让它来评估一个表达式。然后我明白了:
>> System.MethodAccessException: Attempt by security transparent method
'Boo.Lang.Interpreter.AbstractInterpreter.ExecuteEntryPoint(
System.Reflection.Assembly)' to access security critical method
'System.AppDomain.add_AssemblyResolve(System.ResolveEventHandler)' failed.
Assembly 'Boo.Lang.Interpreter, Version=2.0.9.4, Culture=neutral,
PublicKeyToken=32c39770e9a21a67' is marked with the
AllowPartiallyTrustedCallersAttribute, and uses the level 2 security transparency
model. Level 2 transparency causes all methods in AllowPartiallyTrustedCallers
assemblies to become security transparent by default, which may be the cause of this
exception.
at Boo.Lang.Interpreter.AbstractInterpreter.ExecuteEntryPoint(Assembly asm)
at Boo.Lang.Interpreter.AbstractInterpreter.EvalCompileUnit(CompileUnit cu)
at Boo.Lang.Interpreter.AbstractInterpreter.EvalCompilerInput(ICompilerInput input)
at Boo.Lang.Interpreter.AbstractInterpreter.Eval(String code)
...
我对Boo源代码和我自己的项目进行了全面搜索,并且AllowPartiallyTrustedCallersAttribute
根本没有被引用,所以我不知道为什么解释器会被标记为#34;与"它
从网上搜索,我发现的关于这个问题的一切都与ASP.NET有关,我没有使用它。解决方案说要在web.config
中粘贴一些东西或其他内容,因为我没有使用ASP.NET,或者在IIS中某处配置某些权限,我不会这样做。因为我没有使用ASP.NET血腥!
那么,有没有人知道这里真正发生了什么,以及当我不使用ASP.NET时如何解决它?