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

60

每次启动应用程序池时,它都会停止,并在应用程序日志中给出以下错误:

应用程序池“APP_POOL_NAME”的工作进程遇到错误“无法读取配置文件”,尝试从文件“\\?<EMPTY>”中读取配置数据,行号为“0”。 数据字段包含错误代码。

多个用户注意到此问题发生在 Windows 10 秋季更新之后。


请考虑改进问题 - 即解释您的设置以及您认为会帮助其他用户识别自己是否有相同的问题(例如,如果这是您的机器的情况,则提到“ IIS 在秋季创作者更新后运行良好并开始失败”将使未来访问者更容易使用此问题)。 附注:此问题被选为审核审计,并在meta上进行了讨论。 - Alexei Levenkov
感谢抽出时间查看这个问题。我无法看到讨论,因为它似乎已被删除。根据对我的答案的评论,我已经采纳了你的建议并编辑了这个问题。 - Ste Pammenter
6个回答

158
如果您最近安装了Windows 10秋季创作者更新,可能会在此Microsoft知识库文章中找到此问题及解决方法。解决方法如下:
  • 打开管理员命令提示符(不是Powershell提示符)
  • 输入: net stop WAS /y
  • 输入: rmdir /s /q C:\inetpub\temp\appPools
  • 输入: net start W3SVC
感谢@weir报告此问题
这并非权限错误,但确保IIS_IUSRS可以访问您的站点配置绝对是值得的。请参阅此处以了解如何执行此操作。
此问题似乎是由一个虚拟目录出现在IIS临时文件中,并指向错误位置引起的。解决方法如下:
  1. 进入安装IIS的驱动器,例如:C:\inetpub\temp\appPools\
  2. 删除与您的应用程序池同名的目录(或虚拟目录)。
  3. 重新启动/启动您的应用程序池。

9
太棒了!我不知道你是如何想出这个解决方法的,但在安装 .Net Framework v4.7.1 后我也遇到了同样的问题,而这个方法解决了它。 - Brad Bamford
8
谢谢你找到了解决方法!看起来这是由于秋季创作者更新引起的。 - Cameron Tinker
1
@weir 正如我在 GitHub 问题中指出的那样,.NET 4.7.1 只是一个误导。该问题是由于 Windows 更新逻辑中的一个错误引起的,我们已经修复了这个问题。如果你在修复之前升级到了 Windows 10 秋季创意者更新,就会遇到这个问题。我将在这里留下一个KB文章的链接,以防其他人也遇到此问题。 - Sourabh Shirhatti
2
只是提供信息,即使在2018年1月1日之后我已经获得了创作者更新,但我仍然遇到了问题,因此似乎在分发中没有修复。 - BlackICE
1
这对我帮助很大。你的声誉分数应该进一步提高@StePammenter :-) - ManishKG
显示剩余4条评论

2

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


1
在我的情况下,文件C:\inetpub\temp\appPools\DefaultAppPool\DefaultAppPool.config已经损坏,我无论如何都无法删除它。然后,我创建了一个新的应用程序池,并将应用程序移动到新的应用程序池中以使其正常工作。感谢这里发布的所有出色答案!

1
嘿,在我的情况下,是我的网站命名的问题。
它被设置为 ($webiste$...),末尾有几个点。
重命名后,它就正常工作了。

1

我想补充一下,如果存储配置文件的驱动器已满,也会出现这种情况。今天我们刚发现这个问题,释放空间并重新启动应用程序池即可解决。


2
请记住:当驱动器已满时,除了“您的磁盘已满”之外,您将在各个地方看到许多奇怪的消息:D - Bill Velasquez

0

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

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

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

一旦我们修复了部署过程,不再在应用程序池名称中添加尾随空格,所有问题都得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接