Web.config的问题

时间:2014-09-24 03:16:32

标签: c# asp.net-mvc entity-framework web-config asp.net-mvc-5

我正在尝试使用Web Deploy将MVC应用程序部署到EC2实例,一切正常,直到我尝试运行该应用程序。我收到以下错误:

分析器错误消息:为entityFramework创建配置节处理程序时发生错误:在应用程序配置中多次指定DbContext类型“Project.Modules.AppDbContext,Project”的配置。每个上下文只能配置一次。

我查看了我能找到的所有相关问题(error There is a duplicate 'entityFramework' section definedThere is a duplicate 'entityFramework' section defined - EntityFramework6 upgradeThe type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exceptionThe 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中删除该条目,它会给我一个关于它如何找不到合适资源的错误。唯一值得注意的是,如果我部署并取消选中“执行代码优先迁移”,它只会超时而不是给我上述错误。

2 个答案:

答案 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中也有问题。