首页 > 解决方案 > 错误 ASPCONFIG:无法打开 configSource 文件

问题描述

我们的 .Net Framework 4.8 Web 应用程序突然开始在我们的团队城市构建服务器上生成以下构建时错误:

error ASPCONFIG: Unable to open configSource file ‘sessionState.config’.

我们的 web.config 引用了一个外部会话状态文件:

<sessionState configSource="sessionState.config" />

该项目正在积极开发中,但是最近没有对应用程序进行相关更改。我们最初认为这是构建服务器上的配置问题,但是我们意识到如果我们“发布”项目勾选“将所有输出合并到单个程序集”选项,我们可以在我们的开发机器上复制相同的问题。我们发布到本地文件以复制在我们的构建服务器上发生的事情。

修改 sessionState.config 文件的 Build Action fromNoneContent消除问题,但这会导致将我们的 sessionState.config 文件复制到部署包中,这是我们不想要的。

标签: asp.net-mvcsession-state

解决方案


我们花了很多时间试图调查这个问题,最后决定尝试卸载最近的 Microsoft 更新。这解决了它!我在这里发布这个是希望它至少可以节省另一个人我们花费的时间。

这个特定的 2020 年 10 月 13 日更新是原因,但是,当我们搜索https://support.microsoft.com/en-us/help/4578974/kb4578974-cumulative-update-for-时,我们没有找到它网络框架

应用 .NET Framework 4.8 的 2020 年 10 月 13 日安全和质量汇总后,一些 ASP.Net 应用程序在预编译期间失败。您收到的错误消息可能包含“错误 ASPCONFIG”字样。</p>

“System.web”配置的“sessionState”、“anonymouseIdentification”或“authentication/forms”部分中的配置状态无效。如果配置转换使 Web.config 文件处于中间状态以进行预编译,则在生成和发布例程期间可能会发生这种情况。

注意他们在anonymousIdentification中的拼写错误

解决方案是将此 appSettings 键添加到您的 web.config

<configuration>
      <appSettings>
          <add key="aspnet:DisableAppPathModifier" value="true" />
     </appSettings>
</configuration>

文章指出,将值设置为“true”或“false”将避免此问题。对于使用 cookie 作为会话状态 ID 的站点,建议将此值设置为“true”。

我们使用 cookie,因此将其添加到我们的 web.config 中并使用 true 值,它解决了问题。


推荐阅读