无法读取配置文件 ' 试图从文件 '\\?\<EMPTY>' 读取配置数据,行号 '0'

Posted

技术标签:

【中文标题】无法读取配置文件 \' 试图从文件 \'\\\\?\\<EMPTY>\' 读取配置数据,行号 \'0\'【英文标题】:Cannot read configuration file ' trying to read configuration data from file '\\?\<EMPTY>', line number '0'无法读取配置文件 ' 试图从文件 '\\?\<EMPTY>' 读取配置数据,行号 '0' 【发布时间】:2018-04-28 19:12:36 【问题描述】:

应用程序池每次启动时都会停止,并在应用程序日志中显示此错误:

应用程序池“APP_POOL_NAME”的工作进程遇到了 错误“无法读取配置文件”试图读取配置 来自文件 '\\?\' 的数据,行号 '0'。数据字段包含 错误代码。

一些用户注意到这发生在 Windows 10 秋季更新之后。

【问题讨论】:

请考虑改进问题 - 即解释您的设置以及您认为将帮助其他用户识别他们有同样问题的设置(即提及“IIS 工作正常并在 Fall Creators 更新后开始失败”如果您的机器是这种情况,那么将来的访问者会更容易使用这个问题)。旁注:此问题被选为审核审核,并在meta 上讨论。 感谢您抽出宝贵时间查看此问题。我看不到讨论,因为它似乎已被删除。根据我的回答,我已采纳您的建议并编辑了这个问题。 【参考方案1】:

如果您最近安装了 Windows 10 Fall Creators Update,this Microsoft knowledge base article 可能会介绍此问题及其解决方案。解决办法:

打开管理员命令提示符(不是 Powershell 提示符) 运行:net stop WAS /y 运行:rmdir /s /q C:\inetpub\temp\appPools 运行:net start W3SVC

感谢@weir 提供reporting this issue。


在这种情况下,这不是权限错误,但最好确保IIS_IUSRS 可以访问您的站点配置以防万一。见here 有关如何执行此操作的步骤。

这个问题似乎是 IIS 临时文件中出现了一个虚拟目录,它指向了错误的位置。修复:

    转到安装 IIS 的驱动器,例如。 C:\inetpub\temp\appPools\ 删除与您的应用程序池同名的目录(或虚拟目录)。 重新循环/启动您的应用程序池。

【讨论】:

太棒了!我不知道您是如何解决这个问题的,但是在安装 .Net Framework v4.7.1 后我遇到了同样的问题,并且修复了它。 感谢您解决这个问题!这似乎是秋季创作者更新的结果。 @weir 正如我在 GitHub 问题中指出的那样,.NET 4.7.1 是一条红鲱鱼。出现此问题的原因是我们已修复的 Windows 更新逻辑中的错误。如果你碰巧在修复之前更新到 Windows 10 Fall Creators 更新,你就会遇到这个问题。我将在此处留下link to the KB article,以防其他人遇到此问题。 不错的一个。我已更新答案以反映此修复。 仅供参考,即使我在 2018 年 1 月 1 日之后获得了创作者更新,我仍然遇到问题,所以它似乎在分发中没有得到修复。【参考方案2】:

我删除了DefaultAppPool,然后我创建了一个新池MyAppPool,并在其中添加了应用程序,它就可以工作了。

【讨论】:

【参考方案3】:

想补充一点,如果配置文件所在的驱动器已满,这也可以体现出来。我们今天才发现这个问题,释放空间并重新启动应用程序池修复了它。

【讨论】:

请记住:当驱动器已满时,您会到处看到很多奇怪的消息,除了“您的磁盘已满”:D【参考方案4】:

就我而言,文件C:\inetpub\temp\appPools\DefaultAppPool\DefaultAppPool.config 已损坏,我无法通过所有可能的方式将其删除。然后,我刚刚创建了一个新的应用程序池并将应用程序移动到新的应用程序池以使其工作。感谢此处发布的所有出色答案!

【讨论】:

【参考方案5】:

嘿,就我而言,这是我网站的命名。 它被设置为 ($webiste$...),最后有几个点。

改名后就正常了

【讨论】:

【参考方案6】:

检查应用程序池名称中的尾随空格

在我们的例子中,这是因为应用程序池的名称有一个尾随空格。

我将应用程序池更改为没有尾随空格的新应用程序池,一切正常。后来,当我们的部署工具将新的更新推送到站点/应用程序时,它又回到使用带有尾随空格的应用程序池,并返回错误。

一旦我们将部署过程修复为应用程序池名称中不再有尾随空格,一切都按预期工作。

【讨论】:

以上是关于无法读取配置文件 ' 试图从文件 '\\?\<EMPTY>' 读取配置数据,行号 '0'的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 无法从配置文件特定的 yaml 文件中读取

HTTP错误500.19 - 无法读取配置文件

家庭版.net无法读取配置文件

无法读取数据库名称 Web 项目

无法从数据流中的 GCS 读取我的配置文本文件(列名)

“帮助修复”错误:无法从文件中读取属性列表:info.plist