我正在尝试从32位.Net应用程序中获取DB2数据提供程序,以连接到在Vista 64上作为32位应用程序运行的DB2(还有那么令人困惑)?不幸的是,我收到以下错误:
SQL1159 DB2 .NET数据提供程序初始化错误,原因码7,令牌9.5.0.DEF.2,SOFTWARE \ IBM \ DB2 \ InstalledCopies
有几个IBM forum posts提到它,但没什么有用的指导。有谁之前经历过这个吗?或者你有更好的想法来解决它?
答案 0 :(得分:2)
您是否需要将其作为x86运行?我在Visual Studio的开发Web服务器(x86)下遇到了与Web应用程序类似的问题,但切换到IIS(x64)对我有用。自从我部署到IIS x64之后,我就把它称为一天。
我尝试使用Filemon和Regmon进行跟踪,但没有得到任何拒绝或丢失密钥错误。如果我再看一遍,我会检查HKLM \ Software \ WOW6432Node,猜测安装程序是否写入x64 HKLM \ Software节点,而不是x86节点。
答案 1 :(得分:1)
我依旧记得在尝试设置从sql 2005到as / 400的链接服务器时,DB2 for as / 400 oledb驱动程序存在类似的声音问题。这是一个权限问题,我最终发现只有sql server帐户(不是windows)可以使用链接服务器,因为(我认为)然后驱动程序使用sql的凭据而不是模拟的加载。如果它在“运行为”管理员时工作,那么它必须是权限。
答案 2 :(得分:1)
我假设您已在SQL1159中看到了DB2 Reference Guide的写入内容?
不幸的是,原因代码停在6并且不会继续为7.它确实说:
用户响应:DB2安装存在问题。如果这是第一次在此计算机上安装DB2,请检查安装日志中是否存在任何可能的错误,并从“添加/删除程序”控制面板小程序中运行DB2的修复。安装日志的缺省位置是执行安装的用户的My Documents / DB2LOG文件夹。如果这不能解决问题,请联系IBM支持并提供与此消息相关的原因代码以及任何安装日志。
所以我想尝试重新安装它,如果问题仍然存在,您将不得不联系IBM。
对不起,我知道这没多大帮助。
答案 3 :(得分:0)
我卸载了之前的32位版本,重新安装为64位,现在我得到一个完全不同的错误。它提到要求FP2修复,但由于我使用的是Express-C,我无法安装fixpack(IBM不为免费的DB2产品提供修复包)。无论如何,谢谢你的帮助。至少我现在可以接近连接了。 :)
答案 4 :(得分:0)
我也在Windows 2003 x86服务器上遇到此错误。最初我的问题是
无法找到请求的.net 框架数据提供者。它可能不是 安装。
导致注释c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config缺少DbProviderFactories部分的必要条目。事实上,那里没有IBM DB2条目。当我手动添加一个条目时,我遇到了你的这个错误,建议有更多而不仅仅是编辑machine.config。
Evenutally我卸载了IBM DB2驱动程序集,重启系统,重新安装它,并正确地初始化连接。
答案 5 :(得分:0)
就像快速说明一样......
@Micheal:您对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
答案 6 :(得分:0)
我在DB2 .net提供程序中遇到了同样的问题。
如果您有64位Windows,请下载并安装
IBM数据服务器运行时客户端(Windows AMD 64)版本9.5
从
?_HTTPS://www14.software.ibm.com/webapp/iwm/web/preLogin.do LANG = EN_US&安培;源= SWG-idsrc11&安培; S_TACT = appddnet&安培; S_CMP = ibm_im
如果您运行程序,则会出现以下异常
未处理的异常:System.Overflow异常:算术 操作导致溢出。 在IBM.Data.DB2.DB2ConnPool.Open(DB2Connection连接, StringszConnectionStringIn,DB2ConnSettings& ppSettings,Object& ppConn) 在IBM.Data.DB2.DB2Connection.Open()
从中下载并安装db2版本的修补程序 http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579
这可以解决问题。
答案 7 :(得分:0)
为win x64版本9.7.1安装DB2 Express-C 它会起作用
答案 8 :(得分:0)
我有类似的问题,我的机器是64位。我安装了32位和64位db2运行时客户端,在我的项目中将目标框架设置为32位,对我来说非常合适。我能够在其他64/32位计算机上运行该应用程序,只需要从db2运行时客户端安装32位或64位,具体取决于计算机操作系统。
答案 9 :(得分:0)
是。这应该发生在你的Windows 7而不是windows xp中。灵魂是: