實體框架錯誤 - “EntityContainer名稱必須是唯一的”

.net entity-framework exception-handling visual-studio

我們有一個包含兩個項目的解決方案 - 控制台應用程序項目和Web應用程序項目。其中每個都具有相同的模式,但用於訪問同一數據庫的名稱不同的.edmx文件。

控制台應用程序在託管Web應用程序的同一服務器上作為計劃任務運行。 Web應用程序包含對控制台應用程序的引用,因為Web應用程序中的某些操作會導致調用控制台應用程序中的方法。這種組合已在我們的暫存環境中成功運行了好幾個月。

在實時發佈時,我們每天至少會看到以下錯誤消息:

指定的架構無效。錯誤:

ProjectName.csdl(3,4):錯誤0019:EntityContainer名稱必須是唯一的。已定義名為“ProjectEntities”的EntityContainer。 ProjectName.csdl(63,4):錯誤0019:架構中的每個類型名稱必須是唯一的。已定義類型名稱“ProjectModel.DataSource”。 ProjectName.csdl(75,4):錯誤0019:架構中的每個類型名稱必須是唯一的。已定義類型名稱“ProjectModel.Error”。

這將繼續,列出我們架構中的所有類型名稱。

可以通過回收應用程序池或重新啟動IIS來修復此錯誤。

請注意,在Web應用程序運行一段時間之後才會發生錯誤 - 在編譯或第一次訪問應用程序時不會發生錯誤。

我的初步理論是兩個實體容器之間存在衝突,因為Web應用程序引用了控制台應用程序,但它們有不同的名稱,這使得錯誤“EntityContainer名稱必須是唯一的。名為'ProjectEntities'的EntityContainer是已定義“令人困惑。

熱門答案

轉到該bin文件夾並手動刪除dll和pdb文件。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因