Errore Entity Framework - "Il nome EntityContainer deve essere univoco"

.net entity-framework exception-handling visual-studio

Domanda

Abbiamo una soluzione composta da due progetti: un progetto di applicazione per console e un progetto di applicazione web. Ognuno di questi ha uno schema identico, ma un file .edmx con un nome diverso utilizzato per accedere allo stesso database.

L'applicazione della console viene eseguita come attività pianificata sullo stesso server in cui è ospitata l'applicazione Web. L'applicazione Web contiene un riferimento all'applicazione della console poiché determinate azioni all'interno dell'applicazione Web portano a metodi richiamati dall'applicazione della console. Questa combinazione è stata eseguita con successo nel nostro ambiente di staging per molti mesi.

Quando viene rilasciato dal vivo, viene visualizzato il seguente messaggio di errore almeno una volta al giorno:

Lo schema specificato non è valido. Errori:

ProjectName.csdl (3,4): errore 0019: il nome EntityContainer deve essere univoco. Un EntityContainer con il nome "ProjectEntities" è già definito. ProjectName.csdl (63,4): errore 0019: ogni nome di tipo in uno schema deve essere univoco. Il nome del tipo "ProjectModel.DataSource" era già stato definito. ProjectName.csdl (75,4): errore 0019: ogni nome di tipo in uno schema deve essere univoco. Il nome del tipo "ProjectModel.Error" era già stato definito.

Questo continua, elencando tutti i nomi di tipi nel nostro schema.

Questo errore può essere risolto riciclando il pool di applicazioni o riavviando IIS.

Si prega di notare che l'errore non si verifica fino a quando l'applicazione web non è in esecuzione da un po '- non si verifica quando compiliamo o la prima volta che accediamo all'applicazione.

La mia teoria iniziale era che i due Entity Container erano in conflitto tra loro perché l'applicazione Web fa riferimento all'applicazione console, ma hanno nomi diversi, il che rende l'errore "Il nome EntityContainer deve essere univoco." EntityContainer con il nome "ProjectEntities" è già definito "confuso.

Risposta popolare

Vai a quella cartella bin ed elimina manualmente i file dll e pdb.



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché