Error de Entity Framework: "El nombre de EntityContainer debe ser único"

.net entity-framework exception-handling visual-studio

Pregunta

Tenemos una solución que consta de dos proyectos: un proyecto de aplicación de consola y un proyecto de aplicación web. Cada uno de estos tiene un esquema idéntico, pero con un nombre diferente .edmx utilizado para acceder a la misma base de datos.

La aplicación de la consola se ejecuta como una tarea programada en el mismo servidor donde se aloja la aplicación web. La aplicación web contiene una referencia a la aplicación de la consola, ya que ciertas acciones dentro de la aplicación web conducen a métodos en la aplicación de la consola a la que se llama. Esta combinación se ha estado ejecutando con éxito en nuestro entorno de pruebas durante muchos meses.

Cuando se publique en vivo, estamos viendo el siguiente mensaje de error al menos una vez al día:

El esquema especificado no es válido. Errores:

ProjectName.csdl (3,4): error 0019: El nombre de EntityContainer debe ser único. Ya se definió un EntityContainer con el nombre 'ProjectEntities'. ProjectName.csdl (63,4): error 0019: Cada nombre de tipo en un esquema debe ser único. El nombre de tipo 'ProjectModel.DataSource' ya estaba definido. ProjectName.csdl (75,4): error 0019: Cada nombre de tipo en un esquema debe ser único. El nombre de tipo 'ProjectModel.Error' ya estaba definido.

Esto continúa, listando todos los nombres de tipo en nuestro esquema.

Este error se puede solucionar reciclando el grupo de aplicaciones o reiniciando IIS.

Tenga en cuenta que el error no se produce hasta que la aplicación web se ejecuta durante un tiempo, no se produce cuando compilamos ni la primera vez que accedemos a la aplicación.

Mi teoría inicial era que los dos Contenedores de Entidad están en conflicto entre sí porque la aplicación web hace referencia a la aplicación de consola, pero tienen nombres diferentes, lo que hace que el error "El nombre de EntityContainer debe ser único. Un EntityContainer con el nombre 'ProjectEntities' es ya definido "confuso.

Respuesta popular

Vaya a esa carpeta bin y elimine los archivos dll y pdb manualmente.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow