[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