2

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

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();
        }

我尝试在这里执行以下解决方案

</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 ...
4

2 回答 2

2

根据GetFactory 函数的 MSDN 文档,提供的参数应与提供者工厂的不变名称匹配,该名称在您的配置文件中设置为 IBM.Data.Informix.Client,但您传递的是 IBM.Data.Informix(不带 .客户)。

于 2013-01-17T09:49:12.507 回答
1

我发现了这个:如何注册 .NET 提供程序。我希望它有所帮助。

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

于 2013-01-24T19:30:31.560 回答