如何让wwwroot子目录的Finance应用优先读取自身web.config?
解决子目录应用读取根目录web.config的问题
方法一:修改根目录web.config(推荐)
将根目录中不想被子目录应用继承的配置节点,用<location>标签包裹并设置inheritInChildApplications="false",这样子目录的Finance应用就不会继承这些配置。
示例代码:
<configuration> <!-- 保留根目录应用的其他必要节点 --> <location path="." inheritInChildApplications="false"> <appSettings> <!-- 根目录应用的appSettings配置 --> </appSettings> <connectionStrings> <!-- 根目录应用的连接字符串配置 --> </connectionStrings> <!-- 其他需隔离的配置节点也可放入此块 --> </location> </configuration>
注意:<location>标签需直接放在<configuration>节点下,不能嵌套在其他节点(如<system.web>)内部,否则设置无效。
方法二:修改Finance子目录的web.config
如果无法修改根目录配置,可在自身web.config中清空或移除继承的配置项,再添加自己的配置:
清空全部继承项
针对appSettings和connectionStrings,用<clear>标签清空所有继承的配置,再定义自己的内容:
<appSettings> <clear /> <add key="你的配置键" value="你的配置值" /> </appSettings> <connectionStrings> <clear /> <add name="你的数据库连接名" connectionString="你的连接字符串" providerName="System.Data.SqlClient" /> </connectionStrings>
移除特定继承项
若只需排除部分继承的配置,用<remove>标签移除指定项:
<appSettings> <remove key="不需要继承的配置键" /> <add key="你的配置键" value="你的配置值" /> </appSettings>
方法三:在IIS中将Finance目录设为独立应用
- 打开IIS管理器,找到
wwwroot下的Finance目录; - 右键点击目录,选择「转换为应用程序」;
- 选择合适的应用程序池(建议使用独立的应用池,避免与根目录应用冲突),点击确定。
设置后,IIS会将Finance视为独立应用,优先读取自身web.config,同时大幅减少根目录配置的继承影响。
内容的提问来源于stack exchange,提问作者Arael Huerta
相关产品推荐
相关产品推荐

