iDB2InvalidConnectionStringException 连接到新服务器上的 AS400

问题描述 投票:0回答:1

因此,我们已经设置了在 Windows Server 上运行的 ASP.NET MVC / C# Web 应用程序并连接到 AS400(DB2 中端)数据库,并且一切正常。

但是当 IT 尝试设置新服务器并将应用程序移过来时,突然出现 500 错误。为了调试它,我们在同一台服务器上安装了 Visual Studio Community,然后我复制了应用程序的开发(预编译)版本来运行,第一次尝试访问 AS400 时,出现以下异常:

类型:IBM.Data.DB2.iSeries.iDB2InvalidConnectionStringException 消息:“ConnectionString 属性无效。”

类型:System.TypeInitializationException
消息:“‘IBM.Data.DB2.iSeries.iDB2Constants’的类型初始值设定项引发了异常。

类型:IBM.Data.DB2.iSeries.iDB2DCFunctionErrorException
消息:“发生意外异常。
类型:System.AccessViolationException,消息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏..

我想我记得不久前在用户电脑上的桌面应用程序上也看到过同样的错误。

知道问题是什么吗?

获取异常所需的只是运行以下命令:

var connectionString = "DataSource=as400.MYCOMPANY.com; UserID=FAKEUSERNAME; Password=FAKEPASSWORD; InitialCatalog=PRODTEST; DataCompression=True; CheckConnectionOnOpen=True; CharBitDataAsString=True; Naming = System";
var test = new IBM.Data.DB2.iSeries.iDB2Connection(connectionString);
c# asp.net-mvc exception db2 ibm-midrange
1个回答
0
投票

感谢@mustaccio的回答:

至少在 JDBC 连接字符串中,每个属性/值对都必须以分号终止,包括最后一个。

添加了一个;到连接字符串的末尾,它开始工作。我猜由于某种原因,它允许它在旧配置上丢失,但在新配置上则不然。

© www.soinside.com 2019 - 2024. All rights reserved.