[IronPython] InvalidProgramException testing hosting under NUnit
Paul Turbett
sls at iinet.net.au
Sat Apr 5 09:08:18 CEST 2008
That was it. Curt to the rescue again. Thanks.
A possible suggestion would be a more descriptive error message :)
Curt Hagenlocher wrote:
> This indicates that your executable directory does not contain
> IronPython.Modules.dll.
>
> On Thu, Apr 3, 2008 at 7:35 PM, Paul Turbett <sls at iinet.net.au
> <mailto:sls at iinet.net.au>> wrote:
>
> Hi
>
> Was there ever a solution to this problem? I'm getting the same
> thing, though not with NUnit. To port my IP interface from 1.1 to
> 2.0 (beta 1), I created a separate test application, which worked
> fine. However I'm merging the code into my "real" application, but
> I'm not able to create a ScriptEngine.
>
> _runtime = ScriptRuntime.Create();
> string[] languages =
> _runtime.GetRegisteredLanguageIdentifiers(); // finds 18
> languages, including "py"
> _engine = _runtime.GetEngine("py"); // <--- throws an exception
>
> Microsoft.Scripting.Runtime.InvalidImplementationException was
> unhandled
> Message="Type 'IronPython.Runtime.PythonContext' doesn't provide
> a suitable public constructor or its implementation is faulty."
> Source="Microsoft.Scripting"
> StackTrace:
> at
> Microsoft.Scripting.Utils.ReflectionUtils.CreateInstance[T](Type
> actualType, Object[] args)
> at
> Microsoft.Scripting.Runtime.ScriptDomainManager.LanguageRegistration.LoadLanguageContext(ScriptDomainManager
> manager)
> at
> Microsoft.Scripting.Runtime.ScriptDomainManager.TryGetLanguageContext(String
> languageId, LanguageContext& languageContext)
> at
> Microsoft.Scripting.Hosting.ScriptRuntime.TryGetEngine(String
> languageId, ScriptEngine& engine)
> at
> Microsoft.Scripting.Hosting.ScriptRuntime.GetEngine(String languageId)
> at Utilities.OSEPython..ctor(FileStream log) in
> C:\Projects\Utils\PythonEngine.cs:line 121
> at Utilities.PythonFactory.Create(Boolean log) in
> C:\Projects\Utils\PythonEngine.cs:line 70
> ...
>
> Not sure if it's important, but the application uses a few
> assemblies, and the IP wrapper classes are in a separate assembly
> to where they are used.
>
> Thanks, Paul
>
>
> Fernando Correia wrote:
>> 2008/3/12, Dino Viehland <dinov at exchange.microsoft.com> <mailto:dinov at exchange.microsoft.com>:
>>
>>> There's an inner exception here (probably from Importer.cs in MakeImportSite) but there isn't much info on it. Could you run it under a debugger and get that original stack trace? It's not clear to me why we would blow up there.
>>>
>> Thanks for your help.
>>
>> Sorry for some text in Portuguese below. I hope it doesn't get in the way.
>>
>> The exception occurs within class ReflectionUtils, method CreateInstance<T>.
>>
>> Line 127 is:
>> return (T)Activator.CreateInstance(actualType, args);
>>
>> This in turns ends up calling the constructor public
>> PythonContext(ScriptDomainManager/*!*/ manager) in class
>> PythonContext.
>>
>> Line 120 is:
>> _importer = new Importer(this);
>>
>> A step into this line will cause the exception.
>>
>> The stack trace of the innermost exception
>> ([System.InvalidProgramException] = {"Common Language Runtime detectou
>> um programa inválido."}) is:
>>
>> em Microsoft.Scripting.RuntimeHelpers.CreateSimpleCallSite[T0,T1,T2,T3,T4,R]()
>> em IronPython.Runtime.Importer.MakeImportSite() na
>> C:\Temp\IronPython v2.0 Alpha
>> 8\IronPython-2.0A8-Src\IronPython-2.0A8\Src\IronPython\Runtime\Importer.cs:linha
>> 74
>> em IronPython.Runtime.Importer..cctor() na C:\Temp\IronPython v2.0
>> Alpha 8\IronPython-2.0A8-Src\IronPython-2.0A8\Src\IronPython\Runtime\Importer.cs:linha
>> 49
>>
>> The stack trace of the outermost exception (base
>> {System.ApplicationException} = {"Uma exceção foi acionada pelo
>> destino de uma chamada."}) is:
>>
>> em System.RuntimeMethodHandle._InvokeConstructor(Object[] args,
>> SignatureStruct& signature, IntPtr declaringType)
>> em System.RuntimeMethodHandle.InvokeConstructor(Object[] args,
>> SignatureStruct signature, RuntimeTypeHandle declaringType)
>> em System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags
>> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>> em System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,
>> Binder binder, Object[] args, CultureInfo culture, Object[]
>> activationAttributes)
>> em System.Activator.CreateInstance(Type type, BindingFlags
>> bindingAttr, Binder binder, Object[] args, CultureInfo culture,
>> Object[] activationAttributes)
>> em System.Activator.CreateInstance(Type type, Object[] args)
>> em Microsoft.Scripting.Utils.ReflectionUtils.CreateInstance[T](Type
>> actualType, Object[] args) na C:\Temp\IronPython v2.0 Alpha
>> 8\IronPython-2.0A8-Src\IronPython-2.0A8\Src\Microsoft.Scripting\Utils\ReflectionUtils.cs:linha
>> 127
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080405/4dd559c4/attachment.html>
More information about the Ironpython-users
mailing list