找出哪些 web.config(s) 已被加载

Find out which web.config(s) have been loaded

我遇到一个错误,表明我的解决方案的这个特定子项目正在加载的 web.config 的连接字符串与已加载的 web.config 中的现有条目冲突 (异常消息是:附加信息:已添加条目 'connStr'。

有没有办法轻松找出所有 web.config 加载的 loaded/being 的列表,以便我可以确定哪里发生了冲突

只有一个 web.config 将被加载,但是,它将继承您的机器配置。对于 IIS,这是在这里:

%windir%\Microsoft.NET\Framework\framework_version\CONFIG\machine.config

对于 IIS Express,在这些地方之一:

%userprofile%\documents\iisexpress\config\applicationhost.config
%userprofile%\my documents\iisexpress\config\applicationhost.config
$(solutionDir)\.vs\config\applicationhost.config (only for Visual Studio 2015 and above)

因此您可以从那里删除重复项,或者在您的 web.config 中添加一个 remove 条目,例如:

<connectionStrings>
  <remove name="MyConnection" />
  <add name="MyConnection" connectionString="..." providerName="System.Data.SqlClient" />
</connectionStrings>

我以前遇到过这个问题,我在主web.config中添加了 inheritInChildApplications="false"。这样我就知道我的子 web.config 不会有任何冲突。