我有一个具有此配置的 machine.config:
<system.web>
<machineKey compatibilityMode="Framework20SP2" validationKey="123" decryptionKey="456" validation="SHA1" decryption="3DES"/>
还有一个带有这个属性的 web.config
<system.web>
<machineKey decryption="SHA1"/>
最终配置是否结合了两者?
<machineKey compatibilityMode="Framework20SP2" validationKey="123" decryptionKey="456" validation="SHA1" decryption="SHA1"/>
或者如果我重新定义了 machineKey,它会被完全覆盖吗?
<machineKey decryption="SHA1"/>
最佳答案
子目录中的设置将覆盖或修改父目录中的设置。例如让我们以处理程序或模块为例。如果 web.config 包含这样的处理程序,则在父目录中。
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="SampleHandler.new" type="SampleHandler, SampleHandlerAssembly" />
</httpHandlers>
</system.web>
</configuration>
如果子目录包含这样的处理程序
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.SampleFileExtension" type="SampleHandler2 " />
</httpHandlers>
</system.web>
</configuration>
然后可用于子目录的有效处理程序将是两个配置的联合。所以基本上配置是在子目录中修改的。如果您在子目录的配置文件中的
现在我们来看第二个例子。考虑有问题的配置。在这种情况下,由于我们在子配置文件中重新声明/配置相同的设置,它将覆盖父配置设置,有效配置将是子配置文件中的任何内容。即
<machineKey decryption="SHA1"/>
您可以通过此链接更深入地了解配置的工作原理。 http://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides
关于asp.net - machine.config 和 web.config 中的 machineKey 属性。它们是合并的还是被覆盖的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844027/