实体框架错误 - “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合法吗? 是的,了解原因