在升级到测试环境时,“实体容器必须是唯一的”错误

时间:2012-03-01 15:48:11

标签: wcf entity-framework iis entity-framework-4

我有一个解决方案(WCF服务),其中包含许多Entity Framework模块。每个dll的名称都不同。

当我(和我的同事)在本地运行时,一切正常。当我们运行自动构建并将文件复制到开发服务器时,一切正常。

但是当我们将文件复制到测试服务器时,我收到一个错误:

Resolution of the dependency failed, type = "OrderManagementInterfaces.IOrderModel", name = "(none)".  
Exception occurred while: Calling constructor OrderDAL.OrderEntities(System.String connectionString).  
Exception is: MetadataException - Schema specified is not valid. Errors: 
OrderDataModel.csdl(3,4) : error 0019: The EntityContainer name must be unique. An EntityContainer with the name 'OrderEntities' is already defined.

然后我的架构的所有部分都说它们已经定义了。当我第一次收到此错误时,它是同一种错误,但对于不同的Entity Framework模块。 (不确定这是否重要。)

所以我的问题是:是否有可能导致此问题的IIS设置?为什么它在我的开发服务器而不是我的测试服务器上工作?

我该怎么做才能解决它。

注意:我已多次检查是否有重复的模块或容器名称。只有一个名为OrderEntities的模块和容器。

我看到有时这是连接字符串的元数据部分的产物。我的连接字符串如下所示:

metadata=res://*/OrderDataModel.csdl|res://*/OrderDataModel.ssdl|res://*/OrderDataModel.msl;provider=...

除数据模型名称不同外,其他所有内容都相同。

注意:我部署到IIS时。我删除所有文件,只复制自动构建的东西。 (两个地方都有相同的东西。)

1 个答案:

答案 0 :(得分:0)

原来这与我的代码无关。

我的应用程序池中的身份设置错误。一旦切换到正确的值,它就开始工作了:)