来自IBM.Data.DB2.iSeries的.NET / C#DB2 for iSeries'FatalExecutionEngineError'

时间:2018-01-15 11:31:49

标签: c# .net db2 ibm-midrange

无法从C#/ .NET程序连接到开发(非实时)iSeries

尝试打开新连接时出现以下故障: -

“抛出了'System.ExecutionEngineException'类型的异常。”

HResult -2146233082

托管调试助手'FatalExecutionEngineError'在'C:\ Users \ sclose \ Documents \ Visual Studio 2015 \ Projects \ iSeries1 \ iSeries1 \ bin \ Debug \ iSeries1.vshost.exe'中检测到问题。

其他信息:运行时遇到致命错误。错误的地址是0x71ccec3c,在线程0x28bc上。错误代码是0xc0000005。此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。

只是一个非常简单的点头程序,它设置一个连接字符串并打开一个新连接: -

        string ConnectionString = "DataSource=MACH03Y;UserID=sysmon;Password=xxxxxxxxx;LibraryList=U1SCLOSE;Naming=System";

        _connection = new iDB2Connection(ConnectionString);

安装了iAccess for Windows 7.1,并且能够通过System i Navigator连接并登录iSeries

尝试: -

1)UserId和Library列表的各种组合(有效和无效)

2)有效和无效的DataSource值

3)不同的IBM.Data.DB2.iSeries.dll版本,包括最新的

总是一样的失败

我们知道相同的代码在实时环境中成功运行,但这可能是第一次在开发环境中尝试过!

通常在dev中它使用模拟服务并且远离真正的iSeries

我在iSeries方面比在.NET方面有更多经验

认为这可能是网络/防火墙问题?

感激不尽的任何帮助

1 个答案:

答案 0 :(得分:0)

每当我看到此错误时,Visual Studio调试器都会出现问题。我不认为这是您的代码或IBM.Data.DB2.iSeries.dll的问题。

错误代码5是Windows中的访问冲突。这些调试器崩溃通常通过升级Visual Studio或应用最新的Service Pack来修复。 VS2015在很多方面都很复杂,因为它是一次重写,几年前我遇到了这些错误,直到修复它们为止。首先尝试使用Service Pack。如果这没有帮助,请尝试2012或2017版本。也可能是Windows更新打破了这一点。它发生在以前。

另请参阅:"vshost32.exe has stopped working" OR "fatal execution engine error" in Visual Studio