SQL1159 DB2 .NET 数据提供程序初始化错误,原因代码 7,标记 9.5.0.DEF.2,SOFTWARE\IBM\DB2\InstalledCopies

StackOverflow https://stackoverflow.com/questions/29370

  •  09-06-2019
  •  | 
  •  

我正在尝试从 32 位 .Net 应用程序获取 DB2 数据提供程序,以连接到在 Vista 64 上作为 32 位应用程序运行的 DB2(这是否足够令人困惑)?不幸的是,我收到以下错误:

SQL1159 DB2 .NET 数据提供程序初始化错误,原因代码 7,标记 9.5.0.DEF.2,SOFTWARE\IBM\DB2\InstalledCopies

有几个 IBM 论坛帖子 提到它,但几乎没有有用的指导。有谁之前经历过这个吗?或者您有更好的解决办法吗?

有帮助吗?

解决方案

您需要让它作为 x86 运行吗?我在 Visual Studio 的开发 Web 服务器(x86)下的 Web 应用程序遇到了类似的问题,但切换到 IIS (x64) 对我来说很有效。由于我正在部署到 IIS x64,所以我就到此为止了。

我尝试使用 Filemon 和 Regmon 进行跟踪,但没有收到任何拒绝或丢失密钥错误。如果我再看一遍,我会检查 HKLM\Software\WOW6432Node,猜测安装程序会写入 x64 HKLM\Software 节点,而不是 x86 节点。

其他提示

我依稀记得当尝试设置从 sql 2005 到 as/400 的链接服务器时,DB2 for as/400 oledb 驱动程序也有类似的问题。这是一个权限问题,我最终发现只有 sql 服务器帐户(不是 Windows)可以使用链接服务器,因为(我认为)驱动程序是使用 sql 的凭据而不是模拟的凭据加载的。如果它在“以管理员身份运行”时有效,那么它必须是权限。

我假设你已经看过这篇文章 SQL1159 在里面 DB2 参考指南?

对您来说不幸的是,原因代码在 6 处停止并且不会继续到 7。它确实说:

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

所以我想尝试重新安装它,如果问题仍然存在,您必须联系 IBM。

抱歉,我知道这没有多大帮助。

我卸载了以前的 32 位版本,重新安装为 64 位,现在我得到了完全不同的错误。它提到需要 FP2 来修复,但由于我使用的是 Express-C,所以我无法安装修复包(IBM 不为免费的 DB2 产品提供修复包)。不管怎样,谢谢你的帮助。至少我现在可以更接近连接了。:)

我在 Windows 2003 x86 服务器上也遇到了这个错误。本来我的问题是

无法找到所需的.NET框架数据提供商。它可能没有安装。

这导致评论说 c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 缺少 DbProviderFactories 部分的必要条目。事实上,那里没有 IBM DB2 条目。当我手动添加条目时,我遇到了你的这个错误,提示有 更多的 不仅仅是编辑 machine.config。

最后,我卸载了 IBM DB2 驱动程序集,重新启动系统,重新安装它,并使其正确初始化连接。

只是作为一个快速说明...

@迈克尔:SQL1159 的链接是版本 9.1 文档
版本 9.5 文档上升到原因代码 9
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql01159n.html

不幸的是,我认为有第 10 个原因代码没有记录在案,但它在developerWorks 主题中
http://www.ibm.com/developerworks/wikis/display/DB2/DB2+and+.NET+FAQ#DB2and.NETFAQ-WhatisSQL1159InitializationError%3F

我在使用 DB2 .net 提供程序时遇到了同样的问题。

如果您的Windows 64位,请下载并安装IBM数据服务器运行时客户端(Windows AMD 64)版本9.5
来自_https://www14.software.ibm.com/webapp/iwm/web/prelogin.do?lang = en_us&source&source = swg-idsrc11&s_tact = appddnet&s_cmp = ibm_im

如果你运行你的程序,你会得到以下异常

未处理的异常:系统溢出异常:算术操作导致溢出。在ibm.data.db2.db2.db2connpool.open(db2connection连接,stringszconnectionstringin,db2connsettings&ppsettings,object&ppconn),ibm.data.data.db2.db2.db2.db2connection.open.open.open()

从以下位置下载并安装适合您的 db2 版本的修复程序http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579

这将解决问题。

安装WIN X64,版本9.7.1的DB2 Express-C,它将起作用

我也有类似的问题,我的机器是64位的。我安装了 32 位和 64 位 db2 运行时客户端,在我的项目中将目标框架设置为 32 位,这对我来说非常适合。我能够在其他 64/32 位机器上运行该应用程序,只是他们需要从 db2 运行时客户端安装 32 位或 64 位,具体取决于机器操作系统。

是的。这应该发生在 Windows 7 中,而不是 Windows XP 中。灵魂是:

  • 右键单击解决方案资源管理器中的项目
  • 特性
  • 编译选项卡 (左边)
  • 向下滚动查看 高级编译选项 按钮
  • 更改下拉菜单 目标CPU 到 x86。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top