Asp.net 阻止Web.Config中的实体框架继承
我有一个子MVC应用程序在IIS8.5中的另一个父MVC应用程序下运行 正如预期的那样,子应用程序继承父级Asp.net 阻止Web.Config中的实体框架继承,asp.net,asp.net-mvc,entity-framework,inheritance,iis,Asp.net,Asp.net Mvc,Entity Framework,Inheritance,Iis,我有一个子MVC应用程序在IIS8.5中的另一个父MVC应用程序下运行 正如预期的那样,子应用程序继承父级Web.Config设置 我遇到的问题是,子应用程序继承了部分,我需要阻止它这样做。我如何做到这一点 我曾经问过一个非常类似的问题,但没有一个能阻止继承 到目前为止,我已尝试: i隔离子应用程序的应用程序池 将目录更改为虚拟目录 添加 在applicationHost文件中 将enableConfigurationOverride=“false”添加到应用程序池 applicationHo
Web.Config
设置
我遇到的问题是,子应用程序继承了
部分,我需要阻止它这样做。我如何做到这一点
我曾经问过一个非常类似的问题,但没有一个能阻止继承
到目前为止,我已尝试:
- i隔离子应用程序的应用程序池
- 将目录更改为虚拟目录
- 添加
在
文件中applicationHost
- 将
添加到应用程序池enableConfigurationOverride=“false”
文件中的配置文件applicationHost
我在代码优先迁移方面特别有问题。以下
继承自父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。在父应用程序的
web.config
文件中,将不希望继承的元素包装在位置
元素中,并将inheritInChildApplications
设置为false
:
<location inheritInChildApplications="false">
<context type="SomeApp.Models.DataContext, SomeApp">
<databaseInitializer type="...">
<parameters>
<parameter value="SomeConnection_DatabasePublish" />
</parameters>
</databaseInitializer>
</context>
</location>
您可以尝试以编程方式重写配置,无论EF从配置中读取什么,只需添加重置所有配置的代码即可。如果没有关于实际设置会给您带来麻烦的更多详细信息,则无法包含任何特定的代码片段。@WiktorZychla谢谢,我已更新了问题以演示继承的
。您是否尝试将其改写为其他内容,比如一个空的迁移列表,或者甚至是另一个初始值设定项?@WiktorZychla,你是指应用程序本身,而不是通过IIS?感谢您的建议,当父应用程序发布时会自动生成上下文,因此我无法控制它