无法找到请求的.Net Framework数据提供程序。它可能没有安装。(informix)

时间:2013-01-17 09:37:04

标签: c# asp.net web-config informix dbproviderfactories

我有一个旧的应用程序,经过很长一段时间我尝试测试它。我得到以下异常:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

我的代码:

 public DBConnection(string ConnectionString)
        {
            this.providerFactory = DbProviderFactories.GetFactory("IBM.Data.Informix");//Exception here
            this.connection = new IfxConnection();
            if (string.IsNullOrEmpty(ConnectionString))
            {
                this.connection.ConnectionString = ConfigurationManager.ConnectionStrings["r_informix"].ToString();
            }
            else
            {
                this.connection.ConnectionString = ConfigurationManager.ConnectionStrings["r_informix"].ToString();
            }
            command = this.connection.CreateCommand();
        }

我尝试执行以下解决方案here

</runtime>
 <system.data>
    <DbProviderFactories>
      <add name="IBM.Data.Informix"
              invariant="IBM.Data.Informix.Client"
              description="Informix Data Provider for .NET"
              type="IBM.Data.Informix,
                  IBM.Data.Informix,
                  Version=3.0.0.2,
                  Culture=Neutral,
                  PublicKeyToken=7c307b91aa13d208" />
    </DbProviderFactories>
  </system.data>
but In vain ...

2 个答案:

答案 0 :(得分:2)

根据MSDN documentation for the GetFactory function,提供的参数应该与提供程序工厂的不变名称匹配,该名称在配置文件中设置为IBM.Data.Informix.Client,但是您传递的是IBM.Data.Informix(没有.Client)。

答案 1 :(得分:1)

我发现了这个:How to register .NET provider。 我希望它有所帮助。

您也可以尝试在GAC中手动安装IBM.Data.Informix和IBM.Data.DB2。