“无法使用IBM DB2 .NET数据提供程序查找或加载已注册的.Net Framework数据提供程序”

时间:2012-09-10 14:29:46

标签: .net db2 dataprovider enterprise-library-5

部署应用程序后,我在UAT服务器上收到此错误。它适用于其他环境,包括DEV& QA服务器。

  • UAT Server是带有SP2 64位的Windows 2008 R2,.NET 4.0和IBM .Net Data Provider
  • DEV& QA盒有Windows 2003 SP2 32bit,.NET 4.0和IBM .Net Data Provider

我们使用Enterprise Library 5.0。这是web.config中的配置:

<configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</configSections>

<connectionStrings>
    <add name="DatabaseServer" connectionString="Server=XXX;Database=XXXX;UID=XXXX;PWD=XXXX;" providerName="IBM.Data.DB2" />
</connectionStrings>

<dataConfiguration defaultDatabase="DatabaseServer"/>

<system.data>
    <DbProviderFactories>
         <remove invariant="IBM.Data.DB2"></remove>
         <add name="IBM DB2 .NET Data Provider" invariant="IBM.Data.DB2" description="IBM DB2 Data Provider for .NET Framework 2.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2, Version=9.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208"/>
    </DbProviderFactories>
</system.data>

它工作正常并连接到32位服务器上的数据库。我开发了一个Windows应用程序来测试64位服务器上的数据库连接,并包含app.config中的所有配置。这也很有效,但是当通过IIS访问网站时,它会抛出这个错误:

  

无法找到或加载已注册的.Net Framework数据提供程序

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

根据您使用的客户端访问版本,IBM.DB2.iSeries组件可能有效,也可能无效。我们目前正处于V5R4,而我们争先恐后地修复了6.1版本发布时我们遇到的所有代码。 V5R4版本在64位上根本不起作用。我不确定最近的版本。

您可以选择将项目设置为针对x86而不是X64,Itanium或任何CPU进行编译。