我的 Windows 10 PC 上的 Windows 进程激活服务 (WAS) 将无法启动。因此,IIS 也无法启动。我不太清楚这是什么时候发生的,但可能是在上个月。
在启动过程中,我现在在系统日志中收到一系列 4 个错误事件:
WAS 5215:Windows 进程激活服务 (WAS) 无法执行脱机安装的初始化。数据字段包含错误号。[数据字段:50000780]
WAS 5005:Windows Process Activation Service (WAS) 因遇到错误而停止。数据字段包含错误编号。[数据字段:50000780]
服务控制管理器 7023:WAS 服务因以下错误而终止:该文件存在。
服务控制管理器 7001:W3SVC 服务依赖于 WAS 服务,该服务由于以下错误而启动失败:该文件存在。
我没有太多关于这种类型的错误的参考资料,错误文件存在。
(我尝试使用 ProcMon 来尝试识别它所引用的文件,但它绝对拒绝运行。)
编辑... 终于让 ProcMon 工作了(使用 VS2017 提取 64 位版本后)。原来导致上述问题的文件是文件夹中的“applicationhost.config.tmp”文件C:\Windows\System32\inetsrv\Config
。删除该文件可使进程继续进行。
现在,第一和第三个错误是:
WAS 5215:Windows 进程激活服务 (WAS) 无法执行脱机安装的初始化。数据字段包含错误号。[数据字段:0D000780]
服务控制管理器 7023:Windows 进程激活服务服务因以下错误而终止:数据无效。
根据 Yanbing Shi 的回答,以下是iis.log
文件中最新的几行:
[01/13/2018 23:10:41] [ ***** IIS 10.0 Component Based Setup ***** ] [01/13/2018 23:10:41] .\inetsrv\iissetup.exe /install SharedLibraries /nano [01/13/2018 23:10:41] Setting Installation Type to Nano [01/13/2018 23:10:41] Successfully added IIS_IUSRS ACE to DACL at %ProgramData%\Microsoft\Windows\WER\ReportQueue. [01/13/2018 23:10:42] < !!FAIL!! > Failed to create the NetFrameworkConfigurationKey key container (result=0x8009000f) [01/13/2018 23:10:42] < !!FAIL!! > Install of component SharedLibraries result=0x8009000f [01/13/2018 23:10:42] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x8009000f [01/13/2018 23:10:42] [ End of IIS 10.0 Component Based Setup ]
回应石彦兵的下一个答案...
起初,我无法查看/编辑/删除该d6d986f09a1ee04e24c949879fdb506c_*
文件。当我尝试查看其权限时,我收到消息:You do not have permission to view this object's security properties, even as an administrative user.
但是,我能够将所有权更改为“管理员”,然后授予该组Full
权限,然后我就可以查看它了。该文件不是文本文件,但文件中大约有 28 个字节NetFrameworkConfigurationKey
。我将文件移出了该文件夹。
然后我就跑net start was
了System error 80 has occurred. The file exists.
文件中没有添加任何内容iis.log
,但常见的错误事件被添加到系统事件日志中。
然后我手动删除了该applicationhost.config.tmp
文件并运行net start was
。这一次,我得到了System error 13 has occurred. The data is invalid.
这次有新作品iis.log
[03/18/2018 07:44:54] [ ***** IIS 10.0 Component Based Setup ***** ] [03/18/2018 07:44:54] .\inetsrv\iissetup.exe /install SharedLibraries /nano [03/18/2018 07:44:54] Setting Installation Type to Nano [03/18/2018 07:44:55] Successfully added IIS_IUSRS ACE to DACL at %ProgramData%\Microsoft\Windows\WER\ReportQueue. [03/18/2018 07:44:55] Created NetFrameworkConfigurationKey key containter [03/18/2018 07:44:56] Created NetFrameworkConfigurationKey user key [03/18/2018 07:44:56] Set ACLs on NetFrameworkConfigurationKey [03/18/2018 07:44:56] < !!FAIL!! > Failed to create the iisWasKey key container (result=0x8009000f) [03/18/2018 07:44:56] < !!FAIL!! > Install of component SharedLibraries result=0x8009000f [03/18/2018 07:44:56] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x8009000f [03/18/2018 07:44:56] [ End of IIS 10.0 Component Based Setup ]
答案1
失败的原因是 WAS 在启动时无法访问机器密钥。升级后首次启动时,如果没有机器密钥,WAS 将尝试创建新的机器密钥,或者查询旧操作系统留下的旧机器密钥。在这种情况下,存在旧的机器密钥,但由于某些不明原因,WAS 不幸无法访问它们。这些机器密钥用于加密 applicationHost.config 或 web.config 中的敏感信息(例如用户密码)。如果没有可用的机器密钥,WAS 将无法启动。
以下步骤删除 IIS 使用的几个机器密钥可能有助于 WAS 启动 - WAS 将在启动时重新创建这些密钥。
- 转到您的 RSA 机器密钥文件夹:C:\Users\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
- 找到一个名称以 d6d986f09a1ee04e24c949879fdb506c_* 开头的机器密钥(文件)。如果使用记事本打开它,您应该会看到纯文本“NetFrameworkConfigurationKey”。
- 将此文件备份到其他文件夹。
- 删除此文件。
- 按照2-4相同的步骤备份并删除iisWasKey:76944fb33636aeddb9590521c2e8815a_*
- 按照2-4相同的步骤备份并删除iisConfigurationKey:6de9cb26d2b98c01ec4e9e8b34824aa2_*
- 手动启动 WAS
- 通过“以管理员身份运行”打开命令提示符。
- 净启动时间为
答案2
对我来说,这是在昨天运行 Windows 更新后开始的。从那时起安装的更新:
- 功能更新至 Windows 10 版本 1709
- Windows 10 更新 KB4041994
- 2018-01 累积更新 KB4056892
启动 Windows 进程激活服务(WAS)出现此错误:
错误13:数据无效。
从系统事件日志中:
Windows 进程激活服务 (WAS) 无法执行脱机安装的初始化。数据字段包含错误号 [8007000D]。
不知道发生了什么。我验证了我的administration.config
,applicationHost.config
并redirection.config
包含预期的数据。
我尝试恢复到自动备份的配置文件C:\inetpub\history
,但没有结果。
最后我采取了以下步骤:
从 备份所有配置文件
C:\Windows\System32\inetsrv\Config
。通过从 Windows 功能中取消选中以下内容来删除所有与 HTTP 相关的内容(请截取已安装的屏幕截图,以便您之后可以轻松地重新安装相同的模块):
- 在 .NET Framework 3.5 下,不要取消选中框架本身:
- WCF HTTP 激活
- WCF 非 HTTP 激活
- .NET Framework 4.7 高级服务
- 互联网信息服务
- IIS 可托管 Web 核心
- Windows 进程激活服务
重启。
- 从 中删除了剩余的内容
C:\Windows\System32\inetsrv
。 - 重新安装上面所有未安装的功能。
- 重新安装URL 重写模块
- 小心地将 下方的相关元素
<applicationPools>
和<sites>
备份 中的元素放回applicationHost.config
新创建的 中C:\Windows\System32\inetsrv\Config\applicationHost.config
。 iisreset
为确保万无一失,请从提升的命令提示符执行。
好啦,我所有的开发站点都再次恢复了。
之后,我比较了备份文件和新applicationHost.config
文件,没有发现任何重大差异。事实上,当我将备份文件放入applicationHost.config
Config 目录并运行另一个文件时iisreset
,一切仍然正常,所以我猜问题并不是出在那个文件上。
答案3
最近一次 Windows 更新后,我也遇到了这种情况。关闭 Windows 功能中的 Windows 进程激活服务,然后重新打开,对我来说就解决了问题。关闭此服务也会关闭以下功能,但您也必须重新打开这些功能:
- Windows Communication Foundation 非 HTTP 激活
- TCP 激活
- 命名管道激活
- 消息队列 (MSMQ) 激活
答案4
我的问题(可能不是你的)是 machine.config 文件中存在错误的 XML。
如果您刚刚编辑了 machine.config,而 WAS(和 IIS)无法启动,那就是因为这个原因。