2013-01-17 52 views
1

我有一箇舊的應用程序,很長一段時間後,當我嘗試測試它。我得到下面的異常:無法找到請求的.Net Framework數據提供程序。它可能沒有安裝(Informix的)

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 ... 
+1

就我而言,它是通過在IIS應用程序池高級設置中將「啓用32位應用程序」設置爲「true」來解決的。 –

回答

2

根據MSDN documentation for the GetFactory function提供的參數應該與提供程序工廠的不變名稱相匹配,該工廠在配置文件中設置爲IBM.Data.Informix.Client,但是您正在傳遞IBM.Data.Informix(不帶.Client)。

+0

我這樣做了,但同樣的問題 –

+1

你提到這是一箇舊的應用程序。它曾經在你使用的這臺機器上工作過嗎?我只是想知道你是如何確定提供者真的被安裝的。 – GTG

+0

沒有這是一個新的'informix'版本的機器,所以我改變了新的參考,並構建解決方案。但是我在運行應用程序時遇到了這個錯誤。 –

相關問題