我正在尝试使用Web Deploy将MVC应用程序部署到EC2实例,一切正常,直到我尝试运行该应用程序。我收到以下错误:
分析器错误消息:为entityFramework创建配置节处理程序时发生错误:在应用程序配置中多次指定DbContext类型“Project.Modules.AppDbContext,Project”的配置。每个上下文只能配置一次。
我查看了我能找到的所有相关问题(error There is a duplicate 'entityFramework' section defined,There is a duplicate 'entityFramework' section defined - EntityFramework6 upgrade,The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception,The provider for invariant name System.Data.SqlClient is specified multiple times)。它是一个MVC应用程序,因此有多个Web.config文件,但它抱怨的EF部分在两个地方都不存在。以下是我的配置文件的相关部分:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
--------more config settings here---------
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="Data Source=MYIP;Initial Catalog=db;Persist Security Info=True;User ID=user;Password=password" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
我听说过它应该在6.1.0中解决很多其他事情。如果我从configSection中删除该条目,它会给我一个关于它如何找不到合适资源的错误。唯一值得注意的是,如果我部署并取消选中“执行代码优先迁移”,它只会超时而不是给我上述错误。
答案 0 :(得分:1)
检查应用虚拟目录的根文件夹或父文件夹中的web.config
。由于web.config继承而发生重复节错误。
wwwroot
|-- web.config <-- ensure this doesn't have any connection strings
|-- your app
|-- web.config <-- inherites wwwroot\web.config's settings
答案 1 :(得分:0)
正如vcsjones在回答here中所述
问题出在您的parent directory
中。即使您指定了问题,.config file
中也有问题。