2013-10-17 73 views
0

我正在使用.NET服务提供商IBM.DATA.DB2.dll(应用程序是一个从DB2数据库获取详细信息的Web服务)从.NET(C#)连接到DB2数据库。我已经安装了DB2 Runtime Client并配置了ODBC并且连接成功。来自C#的DB2连接

当我尝试在.NET代码中打开DB2 Connection对象时,出现错误找不到DB2APP.dll。该DLL在DB2运行时客户端安装路径中可用,但它在bin文件夹中搜索。 (我将它复制到本地机器,虽然它不正确),并且它需要一个新的文件db2nmp.xml,它也在运行时客户机安装路径中可用,但该应用程序正在查看“/WebService ProjectFolder/msg/en_US/db2nmp.xml“。我也复制了这一个,并且能够连接到DB2。 (我清楚地认为它是不正确的)

我的问题是如何强制.NET查看DB2运行时客户端安装文件夹,而不是在Web服务项目文件夹中搜索?我尝试了所有可能的方法,但仍然找不到答案。请帮忙 !!!!!

+0

也许这会帮助你:http://support.microsoft.com/kb/837908,虽然我不得不说:为什么你不包括这些文件到你的项目?如果由于某种原因,db2客户端的应用程序路径发生变化(例如重新安装),您将遇到问题。 – Stefan

+0

嗨@Stefan,谢谢你的回应。我认为我们不需要在配置中的运行时绑定中提供它。我已经看到了我们用来连接到DB2数据库的其他应用程序的源代码,他们没有它运行时绑定。他们只添加了对IBM.DATA.DB2.dll的引用。 –

+0

在参考的属性页上还有一个“复制本地”选项。如果将其设置为“true”,它将被复制到输出文件夹。如果你不想这样,卡洛斯的建议是相当不错的。 – Stefan

回答

1

我们使用DB2,ISeries安装程序在GAC中注册IDM.DATA.DB2程序集。 (Global Assembly Cache)。

如果你去c:\windows\assembly你会看到注册组件,你应该有他们这样的:

enter image description here

使用IBM2.Data.Db2.Iseries参考,应该足以执行数据库作业。 它应该找到无论需要什么参考在GAC中注册。

+0

嗨Carlos Landeras和@Stefan感谢您的回复。问题现在已修复。以下是我认为解决问题的事情清单。 i)首先向DB2USERS和DB2ADMNS组添加内置ASPNET服务帐户(IIS帐户) ii)其次,我重新安装了DB2 Runtime Client [我手动安装它,而不是通过软件门户安装它。 (我们有一个门户网站,我们可以请求一个软件并自动安装)]。 谢谢! –

+0

我很高兴你终于修好了@ArunG;) –