una typeinitializationexception type tipo produjo inicializador framework excepción defaultconnectionfactory data appconfig app asp.net asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5

asp.net - typeinitializationexception - El inicializador de tipo para ''System.Data.Entity.Internal.AppConfig'' lanzó una excepción



se produjo una excepción en el inicializador de tipo de system data entity internal appconfig (16)

Estoy trabajando con EF5 en un sitio web MVC 4 aspnet. Localmente, todo funciona bien, pero cuando lo publico en el IIS e intento ingresar, obtengo el error

"El inicializador de tipo para ''System.Data.Entity.Internal.AppConfig'' lanzó una excepción".

Excepción detallada

Se ha producido un error al crear el manejador de sección de configuración para entityFramework: la configuración para el tipo de DbContext ''GdpSoftware.Server.Data.GdpSoftwareDbContext, GdpSoftware.Server.Data'' se especifica varias veces en la configuración de la aplicación. Cada contexto solo se puede configurar una vez. (E: / App / web.config línea 104)

Revisé la pregunta anterior en StackOverflow, y ya la desinstalé y reinstalé a través de Nuget EntityFramework y verifiqué que cada referencia a ella en cada proyecto es EF5. También verifiqué que el marco seleccionado en cada proyecto es 4.5.

Alguna idea, ¿Qué podría estar causando el problema? ¡Gracias! Guillermo.

web.config

<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> <connectionStrings> <add name="GdpSoftwareConnectionString" connectionString="Persist Security Info=False;User ID=user;Password=password;Initial Catalog=databasename;Data Source=server" providerName="System.Data.SqlClient" /> <add name="GdpSoftware.Server.Data.GdpSoftwareDbContext" connectionString="GdpSoftware.Server.Data.GdpSoftwareDbContext_ConnectionString" providerName="System.Data.SqlClient"/> <add name="GdpSoftware.Server.Ui.Web.Models.UsersContext" connectionString="GdpSoftware.Server.Ui.Web.Models.UsersContext_ConnectionString" providerName="System.Data.SqlClient"/> </connectionStrings> <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> <pages> <namespaces> <add namespace="System.Web.Helpers" /> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization" /> <add namespace="System.Web.Routing" /> <add namespace="System.Web.WebPages" /> </namespaces> </pages> <!-- BEGIN - TO SEE THE ERRORS ON THE DEPLOYMENT--> <customErrors mode="Off" /> <!-- END - TO SEE THE ERRORS ON THE DEPLOYMENT--> </system.web> <system.webServer> <!-- BEGIN - TO SEE THE ERRORS ON THE DEPLOYMENT--> <httpErrors errorMode="Detailed" /> <asp scriptErrorSentToBrowser="true" /> <!-- END - TO SEE THE ERRORS ON THE DEPLOYMENT--> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%/Microsoft.NET/Framework/v4.0.30319/aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%/Microsoft.NET/Framework64/v4.0.30319/aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> <staticContent> <mimeMap fileExtension=".mustache" mimeType="text/plain" /> </staticContent> <security> <requestFiltering> <fileExtensions> <add fileExtension=".mustache" allowed="true" /> </fileExtensions> </requestFiltering> </security> </system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Castle.Windsor" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <contexts> <context type="GdpSoftware.Server.Data.GdpSoftwareDbContext, GdpSoftware.Server.Data" disableDatabaseInitialization="true"> <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[GdpSoftware.Server.Data.GdpSoftwareDbContext, GdpSoftware.Server.Data], [GdpSoftware.Server.Data.Migrations.Configuration, GdpSoftware.Server.Data]], EntityFramework" /> </context> </contexts> </entityFramework> </configuration>


Busque en su web.config o App.Config si tiene algunas etiquetas que no se usan en su proyecto o que no tiene en sus referencias.


Creo que el problema es de esta línea:

<context type="GdpSoftware.Server.Data.GdpSoftwareDbContext, GdpSoftware.Server.Data" disableDatabaseInitialization="true">

No sé por qué estás usando este enfoque y cómo funciona ...

Tal vez es mejor tratar de sacarlo de web.config e ir por otro camino


Descubrí que eliminar las referencias a Entity Framework e instalar la última versión de Entity Framework de NuGet solucionó el problema. Recrea todas las entradas necesarias durante la instalación.


El problema general es cualquier problema relacionado con las configuraciones de Máquina / Web / Aplicación.

Tenía las mismas cadenas de conexión en Machine.Config que en mi App.Config, así que puse antes de mi primera cadena de conexión en mi App.Config


Enfrenté un problema similar y cambiar DefaultConnectionFactory para que sea SqlConnectionFactory me ayudó a resolverlo.


Este extraño error ocurre cuando juegas con diferentes versiones de las versiones de EntityFramework en Nuget Packages como yo.

Primero, desinstale su DLL Entity Framework de los paquetes NuGet y luego Limpie app.config. Al eliminar la entrada de configSections y elemento de entidad marco.

Luego, instale la versión deseada. Esto debería solucionar el problema.


Haga lo siguiente en el archivo App.config,

  1. Poner el elemento connectionStrings es después del elemento configSections .
  2. Coloque el elemento de startup después del elemento connectionStrings .

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections> <connectionStrings> <add name="SchedulingContext" connectionString="Data Source=XXX/SQL2008R2DEV;Initial Catalog=YYY;Persist Security Info=True;User ID=sa;Password=XXX" providerName="System.Data.SqlClient"/> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>


Me encontré con este problema cuando olvidé configurar mi archivo Connections.config para que "copie siempre"

BareMessage = "No se puede abrir el archivo configSource ''Connections.config''."


Me he roto la cabeza por este problema, y ​​finalmente esto es lo que funcionó para mí:

Paso 1: Desinstalar Entity framework usando el administrador de paquetes Nuget

Paso 2: elimine el elemento Entityframework de App.config

Paso 3: reinstalar la versión deseada de Entity Framework.

Paso 4: eliminar la tabla Migraciones y la carpeta Migraciones.

Paso 5: habilite las migraciones y agregue la migración y actualice la base de datos



Si mantiene un archivo de configuración más para app.config, no incluya ninguna clave en la página principal.

Página principal: app.config

<appSettings configSource="appSettings.config"> <add key="ClientSettings" value="venice" /> <!-- Don''t add Key Here --> </appSettings>

Página de niño: appSettings.config

<appSettings> <add key="ClientSettings" value="venice"/> <!-- add Here --> </appSettings>


Si usa ASP.NET e IISExpress, vaya a "C: / Users // Documents / IISExpress / config / applicationhost.config", busque su Proyecto y busque si tiene una entrada de VirtualDirectory defectuosa.


Tenía varios provider especificados en mi web.config.

<providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> </providers>

Simplemente eliminé uno de esos y funcionó.

Estoy usando MySQL, no TSQL


Tuve el mismo problema Después de un día, lo tengo.

El problema consistía en agregar dos etiquetas smtp en mailSettings en <system.net> .


Tuve este error hoy en una aplicación MVC anidada que se ejecuta como carpeta virtual en otra aplicación MVC. En mi caso, la InnerException fue más informativa que la principal. Estaba diciendo:

- The entry ''DbContextMain'' has already been added. (C:/inetpub/.../web.config line x)

Después de corregir las cadenas de conexión duplicadas en las aplicaciones anidadas, todo funcionó bien.


error real lanzado Mensaje = elemento no reconocido ''proveedores'' en web.config así que desde el archivo web.config eliminar la sección de proveedores