SQL1159 DB2 .NET数据提供程序的初始化错误,原因码2

时间:2011-09-20 11:27:19

标签: c# .net db2

我正在尝试从运行Windows 7 64位的开发机器中的.NET 2.0应用程序连接到DB2。

我在open方法中遇到此错误。无法找到解决方案。

ExceptionType:InvalidOperationException ExceptionMessage:SQL1159 DB2 .NET数据提供程序初始化错误,原因码2,令牌D:....................... \ bin \ db2app.dll, StackTrace:在IBM.Data.DB2.DB2ConnPool.Open(DB2Connection连接,String& szConnectionString,DB2ConnSettings& ppSettings,Object& ppConn)    在IBM.Data.DB2.DB2Connection.Open()

4 个答案:

答案 0 :(得分:10)

从我的一个同事那里了解到这一点。问题是因为应用程序文件夹的bin目录中缺少db2app.dll。

将db2app.dll和db2app64.dll从C:\ Program Files \ IBM \ SQLLIB \ BIN复制到应用程序的bib文件夹,它运行正常。

答案 1 :(得分:2)

请参阅IBM doc for SQL1159N底部的“用户响应”,其中还列出了您可能收到此错误代码的各种原因:

  

您的DB2安装存在问题。如果这是第一次在此计算机上安装DB2,请检查安装日志中是否存在任何可能的错误,并从“添加/删除程序”控制面板小程序中运行DB2的修复。安装日志的缺省位置是执行安装的用户的My Documents / DB2LOG文件夹。如果这不能解决问题,请联系IBM支持并提供与此消息相关的原因代码以及任何安装日志。

答案 2 :(得分:1)

我有一个32位DB2客户端,我使用应用程序池(使用'启用32位应用程序'设置为false)从IIS上托管的Web应用程序访问它。在这种情况下 64位客户端(db2app64.dll) 预计db2app.dll将抛出上述错误。

仅供参考.. 在Visual Studio中很难调试此错误,因为默认情况下IIS Express使用32位应用程序池。要将其更改为64位,必须在注册表中进行更改(将Use64BitIISExpress设置为1)IIS Express没有inetmgr。

答案 3 :(得分:0)

在与IBM交谈之后,他们强烈建议不要将IBM dll放在bin文件夹中。我们让IBM远程配置我们的服务器,现在一切正常,我们不能将ibm * .dll放入我们的bin文件夹中,否则它将无法工作。