我有一个旧的应用程序,经过很长一段时间我尝试测试它。我得到以下异常:
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 ...
答案 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。