【发布时间】:2016-09-01 11:43:47
【问题描述】:
我有一个子 MVC 应用程序在 IIS8.5 中在另一个父 MVC 应用程序下运行。
正如预期的那样,子应用继承父应用Web.Config 设置。
我遇到的问题是子应用程序继承了 <EntityFramework> 部分,我需要阻止它这样做。我如何做到这一点?
我已经seenanumberofdifferentquestions问了一个非常相似的问题,但他们都没有阻止<EntityFramework>继承。
到目前为止我已经尝试过:
- 隔离子应用的应用池
- 将目录更改为虚拟目录
- 添加
<virtualDirectoryDefaults allowSubDirConfig="false" />在applicationHost文件中 - 将
enableConfigurationOverride="false"添加到应用程序池applicationHost文件中的个人资料
更新
我特别遇到代码优先迁移的问题。以下<context> 继承自父Web.config 文件,但在子应用程序中不需要:
<context type="SomeApp.Models.DataContext, SomeApp">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[SomeApp.Models.DataContext, SomeApp], [SomeApp.Migrations.Configuration, SomeApp]], EntityFramework, PublicKeyToken=someToken">
<parameters>
<parameter value="SomeConnection_DatabasePublish" />
</parameters>
</databaseInitializer>
</context>
主要问题是此上下文依赖于不在子应用程序中的 dll。
【问题讨论】:
-
您可能会尝试以编程方式覆盖配置,无论 EF 从配置中读取什么,只需添加您的代码即可将其全部重置。如果没有详细说明哪些实际设置会给您带来麻烦,则无法包含特定代码 sn-ps。
-
@WiktorZychla 谢谢,我已经更新了问题以演示正在继承的
<context>。 -
您是否尝试将其覆盖为其他任何内容,例如迁移的空列表甚至是另一个初始化程序?
-
@WiktorZychla 你的意思是在应用程序本身而不是通过 IIS?谢谢
标签: asp.net asp.net-mvc entity-framework inheritance iis