Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 是否禁用web.config继承?_Asp.net - Fatal编程技术网

Asp.net 是否禁用web.config继承?

Asp.net 是否禁用web.config继承?,asp.net,Asp.net,我的网站根目录中有一个内容管理应用程序,我正试图在子文件夹下使用另一个应用程序(计费应用程序)。不幸的是,根站点的web.config正在干扰子应用程序 有没有办法只禁用子文件夹的web.config继承 更新: 如所链接的,使用标记可以阻止部分web配置的继承,如下所示: <?xml version="1.0"?> <configuration> <configSections> .... </configSections> <lo

我的网站根目录中有一个内容管理应用程序,我正试图在子文件夹下使用另一个应用程序(计费应用程序)。不幸的是,根站点的web.config正在干扰子应用程序

有没有办法只禁用子文件夹的web.config继承

更新: 如所链接的,使用
标记可以阻止部分web配置的继承,如下所示:

<?xml version="1.0"?>
<configuration>
<configSections>
    ....
</configSections>
<location path="." inheritInChildApplications="false">
    <appSettings>
        ....
    </appSettings>
    <connectionStrings/>
    <system.web>
        ....
    </system.web>
    <system.codedom>
        ....
    </system.codedom>
    <system.webServer>
        ....
    </system.webServer>
</location>
<runtime>
    ....
</runtime>
</configuration>

....
....
....
....
....
....

部分将不接受包含在标记中…因此我猜这只完成了大部分工作。有人知道如何做得更好吗?

我会明确定义所有所需的设置-永远不要假设任何设置仍然设置为默认值

例如,如果要定义连接字符串,请在成员身份的
之前包含
标记。请定义所有属性,包括cookie名称。等等


它可能会使文件变大一点,但肯定会帮助您避免“但它在我的盒子上工作”的情况:-)

根web.config文件中有一个属性,您可以使用该属性使其内容不会被子应用程序继承

继承HildApplication

将配置中不用于继承的部分放入

<location inheritInChildApplications="false">
     <NotInheritedConfigPart/>
</location>


配置部分似乎不可能不被继承,但配置的其他部分可以像这样被“注释”掉,而不会被继承。

在我看来,每次我努力解决这个问题时,答案实际上都是否定的——我将把这个留给我未来的自己去发现,这样他就不会再浪费时间了


我发现,当您只想在现有站点中添加虚拟目录时,这是一个巨大的问题。对于一个复杂的web.config文件,我总是放弃并将其移动到另一个应用程序中。

如果可以使用两个单独的应用程序池,则可以使用attibute
enableConfigurationOverride=“false”完全停止继承
在applicationHost.config文件中,如我在本问题中所述:



这并不是我所期望的好答案,但也许这是最不坏的选择……这种方法存在问题。您可以在中禁用项的继承,但这对部分没有任何作用。有人知道如何禁用中的项继承吗?我不能使用“inheritInChildApplications”,因为VS不喜欢它。我所做的是通过使用标记来否定IIS所抱怨的事情。这对我很有用。他们是在“asp.next”中解决这个问题还是其他什么问题?我真不敢相信没有办法全局覆盖它!真是一堆垃圾!tldr,不用麻烦了;从未来的11年多开始。我正在将应用程序移动到不同的站点,以避免这种胡说八道。由于许多原因,没有一种干净的方法来处理复杂的继承:1)根本不能禁用某些节的继承;2) 不能选择性地禁用对其他部分的继承;3) 抑制继承(在它工作的地方)会不一致地阻止从祖辈继承(例如主机配置)。没有UI设置吗?中列出的无法在IIS 10中使用此方法,即使在将顶级文件夹转换为具有不同应用程序池的新应用程序时也是如此。仍然从主应用程序继承的子应用程序的设置已添加。
<add name="MyAppPool" enableConfigurationOverride="false" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" >
    <processModel identityType="NetworkService" />
</add>