为什么 IIS 管理器可以正确访问 Web.config,而 IIS 却没有读取/使用站点的 Web.config?

为什么 IIS 管理器可以正确访问 Web.config,而 IIS 却没有读取/使用站点的 Web.config?

在花了“比谨慎更多的时间”调试处理程序未正确应用的问题后,我确定 IIS 管理器中显示的 SiteRoot/web.config 是不是实际上是被 IIS 使用。

我怎么知道的?我已经Web.config无效的 XML- 该网站继续使用默认处理程序和模块运行,而 IIS 管理器将正确地抛出一个错误无效的 XML

信息:

  • 测试/无效的 Web.config不是被 IIS 读取,否则解析失败
    • 静态内容正在提供服务,其根相对于 Web.config。
  • 测试/无效的 Web.config正在被 IIS 管理器读取,因为无法解析/加载(符合预期)。
    • 正确使用“探索”可以打开 Web.config 文件所在的文件夹。
  • NTFS 区分大小写已禁用 根据这个答案web.config。和外壳都存在同样的问题Web.config
  • AppPool 在本地帐户下运行,并且有效的 NTFS 访问已经验证。
  • 没有相关的 Windows 应用程序或系统事件日志表明读取或解析配置时出现错误。

可能发生了什么情况?可以做哪些进一步的诊断?

答案1

虽然我不知道最初的原因是什么......

这两个因素之一“修复”了这个问题。遗憾的是,具体的变化是什么还未确定。

  1. applicationHost.config从另一台机器复制了 inetsvr 。

    虽然这可能会影响各种全局模块等,使用了相同的 AppPool 和 Site 定义,因为它们是通过自动化安装的

    由于这是 VS Code 的“恢复”截断原始文件,无法对相关更改进行差异化。

  2. 删除了 的内容C:\inetpub\temp\appPools

    由于变化的时间,我无法确认此操作是否比使用不同的 applicationHost 更相关/更不相关。

相关内容