我有一个旧的应用程序,经过很长一段时间,当我试图测试它,我得到以下异常:
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 ...
根据GetFactory函数的MSDN文档,所提供的参数应该与提供程序工厂的不变名称相匹配,该名称在配置文件中设置为IBM.Data.Informix. client,但是您传递的是IBM.Data.Informix(没有. client)。
我发现了这个:如何注册。net提供程序。我希望这对你有帮助。
您也可以尝试手动安装IBM.Data. informix和IBM.Data。DB2 in GAC.