我们有一个由两个项目组成的解决方案-一个控制台应用项目和一个web应用项目。它们中的每一个都具有相同的模式,但命名不同,用于访问同一数据库的.edmx文件。
控制台应用程序作为计划任务在承载web应用程序的同一服务器上运行。web应用程序包含对控制台应用程序的引用,因为web应用程序内的某些动作导致控制台应用程序中的方法被调用。这种组合已经在我们的暂存环境中成功运行了好几个月。
当发布live时,我们每天至少看到一次以下错误消息:
指定的架构无效。错误:
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已经定义”令人困惑。
https://stackoverflow.com/questions/979664
复制相似问题