2013-01-17 3 views
1

내가 늙은 응용 프로그램이 있고 오랜 시간 후에 내가 그것을 다음과 같은 예외가 얻을 .I 테스트하려고하면.요청한 .Net Framework 데이터 공급자를 찾을 수 없습니다. 설치되지 않을 수 있습니다 (인포믹스)

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' 버전을 가진 새로운 머신이 아니기 때문에 새로운 것을 가지고 참조를 바꾸고 솔루션을 빌드합니다.하지만 애플리케이션을 실행할 때이 오류가 발생합니다. –

1

나는 이것을 (How to register .NET provider) 발견했습니다. 도움이되기를 바랍니다.

GAC에서 수동으로 IBM.Data.Informix 및 IBM.Data.DB2를 설치할 수도 있습니다.