Unable to find the requested .Net Framework Data Provider. It may not be installed.

Posts   
 
    
dazedorconfused avatar
Posts: 89
Joined: 06-Apr-2006
# Posted on: 17-Apr-2012 19:41:58   

I have an ASP.Net application written in C# that uses LLBLGen to handle persistence to/from SQL Server 2005 and DB2 9.7 Databases. My web application runs under .Net Framework 2.0. I recently had to bring an additional web server online at another location. The new server is running Windows Server 2008 R2. I created the application pool for the web app and enabled 32 bit applications and specified the framework version as 2.0. When I run the app, any pages that utilize SQL Server data work fine. But the first time I try to open a page that utilizes db2 data, I get a System.Argument Exception


Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  


Stack Trace: 
[ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.]
   System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1309951
   SD.LLBLGen.Pro.ORMSupportClasses.DbProviderFactoryInfo.get_FactoryToUse() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbProviderFactoryInfo.cs:183
   SD.LLBLGen.Pro.ORMSupportClasses.DbProviderFactoryInfo.get_FactoryForReflection() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbProviderFactoryInfo.cs:216
   SD.LLBLGen.Pro.ORMSupportClasses.DbProviderFactoryInfo.InitializeEnumTypeCache() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbProviderFactoryInfo.cs:136
   SD.LLBLGen.Pro.ORMSupportClasses.DbProviderFactoryInfo.SetDbProviderFactoryParameterData(String dbProviderFactoryInvariantName, String dbProviderSpecificEnumTypeName, String dbProviderSpecificEnumTypePropertyName) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbProviderFactoryInfo.cs:92
   SD.LLBLGen.Pro.DQE.DB2.DB2SpecificCreator.SetDbProviderFactoryParameterData(String dbProviderFactoryInvariantName, String dbProviderSpecificEnumTypeName, String dbProviderSpecificEnumTypePropertyName) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\DB2DQE\DB2SpecificCreator.cs:81
   SD.LLBLGen.Pro.DQE.DB2.DynamicQueryEngine..cctor() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\DB2DQE\DynamicQueryEngine.cs:86

[TypeInitializationException: The type initializer for 'SD.LLBLGen.Pro.DQE.DB2.DynamicQueryEngine' threw an exception.]
   SD.LLBLGen.Pro.DQE.DB2.DynamicQueryEngine..ctor() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\DB2DQE\DynamicQueryEngine.cs:72
   com.cooperlighting.persistence.flash.DaoClasses.CommonDaoBase..ctor(InheritanceHierarchyType typeOfInheritance, String entityName, IEntityFactory entityFactory) in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\DaoClasses\CommonDaoBase.cs:40
   com.cooperlighting.persistence.flash.DaoClasses.SalesInstrumentDAO..ctor() in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\DaoClasses\SalesInstrumentDAO.cs:32
   com.cooperlighting.persistence.flash.FactoryClasses.DAOFactory.CreateSalesInstrumentDAO() in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\FactoryClasses\DaoFactory.cs:210
   com.cooperlighting.persistence.flash.EntityClasses.SalesInstrumentEntity.CreateDAOInstance() in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\EntityClasses\SalesInstrumentEntity.cs:748
   com.cooperlighting.persistence.flash.EntityClasses.SalesInstrumentEntity.Fetch(String uid, IPrefetchPath prefetchPathToUse, Context contextToUse, ExcludeIncludeFieldsList excludedIncludedFields) in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\EntityClasses\SalesInstrumentEntity.cs:735
   com.cooperlighting.persistence.flash.EntityClasses.SalesInstrumentEntity.FetchUsingPK(String uid, IPrefetchPath prefetchPathToUse, Context contextToUse, ExcludeIncludeFieldsList excludedIncludedFields) in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\EntityClasses\SalesInstrumentEntity.cs:369
   com.cooperlighting.persistence.flash.EntityClasses.SalesInstrumentEntity.FetchUsingPK(String uid) in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\flash\EntityClasses\SalesInstrumentEntity.cs:337
   com.cooperlighting.submittals.manager.persistence.EntityClasses.DrawingEntity.getFlashSalesInstrument() in C:\dev\Submittals\src\com\cooperlighting\drawingsandsubmittals\persistence\EntityClasses\DrawingEntity.cs:2513
   GenerateSubmittalPackage.populateURLs() +49
   GenerateSubmittalPackage.Page_Load(Object sender, EventArgs e) +1424
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 18-Apr-2012 07:22:05   

Hi Steven,

Did you install the IBM's DB2 client on the server? If so, make sure the invariant name for DB2 DBProviderFactory is mentioned in the machine.config.

David Elizondo | LLBLGen Support Team
dazedorconfused avatar
Posts: 89
Joined: 06-Apr-2006
# Posted on: 18-Apr-2012 14:34:15   

Did you install the IBM's DB2 client on the server?

Yes. The db2 9.7 Client has been installed on the server.

make sure the invariant name for DB2 DBProviderFactory is mentioned in the machine.config

I'm embarassed to say I don't know how to do this.

Walaa avatar
Walaa
Support Team
Posts: 14994
Joined: 21-Aug-2005
# Posted on: 18-Apr-2012 15:03:12   

You should have something like the following in the machine.config or in your app.config: (example is for MySQL)

<system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39872
Joined: 17-Aug-2003
# Posted on: 19-Apr-2012 10:40:35   

Example:


      <add name="IBM DB2 .NET Data Provider" invariant="IBM.Data.DB2" description="IBM DB2 Data Provider for .NET Framework 2.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2, Version=9.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208"/>

Frans Bouma | Lead developer LLBLGen Pro
dazedorconfused avatar
Posts: 89
Joined: 06-Apr-2006
# Posted on: 19-Apr-2012 17:58:44   

That was it exactly. I don't recall having to do this on previous servers. But I will certainly remember it in the future. Thank all!