Erreur Entity Framework - "Le nom EntityContainer doit être unique"

.net entity-framework exception-handling visual-studio

Question

Nous avons une solution composée de deux projets: un projet d'application console et un projet d'application Web. Chacun de ceux-ci a un schéma identique, mais le nom de fichier .edmx utilisé différemment pour accéder à la même base de données.

L'application console s'exécute en tant que tâche planifiée sur le même serveur que l'application Web hébergée. L'application Web contient une référence à l'application console car certaines actions de l'application Web entraînent l'appel de méthodes dans l'application console. Cette combinaison fonctionne dans notre environnement de transfert avec succès depuis de nombreux mois.

Lors de la sortie en direct, le message d'erreur suivant s'affiche au moins une fois par jour:

Le schéma spécifié n'est pas valide. Les erreurs:

NomProjet.csdl (3,4): erreur 0019: le nom EntityContainer doit être unique. Un EntityContainer avec le nom 'ProjectEntities' est déjà défini. NomProjet.csdl (63,4): erreur 0019: chaque nom de type dans un schéma doit être unique. Le nom de type 'ProjectModel.DataSource' était déjà défini. NomProjet.csdl (75,4): erreur 0019: chaque nom de type dans un schéma doit être unique. Le nom de type 'ProjectModel.Error' était déjà défini.

Cela continue, en listant tous les noms de types de notre schéma.

Cette erreur peut être corrigée en recyclant le pool d'applications ou en redémarrant IIS.

Veuillez noter que l'erreur ne se produit pas tant que l'application Web n'a pas fonctionné pendant un certain temps. Elle ne se produit pas lors de la compilation ou lors du premier accès à l'application.

Ma théorie initiale était que les deux conteneurs d'entités sont en conflit parce que l'application Web fait référence à l'application console, mais qu'ils portent des noms différents, ce qui rend l'erreur "Le nom EntityContainer doit être unique. Un EntityContainer portant le nom 'ProjectEntities' est déjà défini "déroutant.

Réponse populaire

Allez dans ce dossier bin et supprimez les fichiers dll et pdb manuellement.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow