Windows 进程激活服务失败 - Windows 10

Windows 进程激活服务失败 - Windows 10

我的 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 wasSystem 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 将在启动时重新创建这些密钥。

  1. 转到您的 RSA 机器密钥文件夹:C:\Users\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
  2. 找到一个名称以 d6d986f09a1ee04e24c949879fdb506c_* 开头的机器密钥(文件)。如果使用记事本打开它,您应该会看到纯文本“NetFrameworkConfigurationKey”。
  3. 将此文件备份到其他文件夹。
  4. 删除此文件。
  5. 按照2-4相同的步骤备份并删除iisWasKey:76944fb33636aeddb9590521c2e8815a_*
  6. 按照2-4相同的步骤备份并删除iisConfigurationKey:6de9cb26d2b98c01ec4e9e8b34824aa2_*
  7. 手动启动 WAS
    • 通过“以管理员身份运行”打开命令提示符。
    • 净启动时间为

答案2

对我来说,这是在昨天运行 Windows 更新后开始的。从那时起安装的更新:

  • 功能更新至 Windows 10 版本 1709
  • Windows 10 更新 KB4041994
  • 2018-01 累积更新 KB4056892

启动 Windows 进程激活服务(WAS)出现此错误:

错误13:数据无效。

从系统事件日志中:

Windows 进程激活服务 (WAS) 无法执行脱机安装的初始化。数据字段包含错误号 [8007000D]。

不知道发生了什么。我验证了我的administration.configapplicationHost.configredirection.config包含预期的数据。

我尝试恢复到自动备份的配置文件C:\inetpub\history,但没有结果。

最后我采取了以下步骤:

  1. 从 备份所有配置文件C:\Windows\System32\inetsrv\Config

  2. 通过从 Windows 功能中取消选中以下内容来删除所有与 HTTP 相关的内容(请截取已安装的屏幕截图,以便您之后可以轻松地重新安装相同的模块):

    • 在 .NET Framework 3.5 下,不要取消选中框架本身:
      • WCF HTTP 激活
      • WCF 非 HTTP 激活
    • .NET Framework 4.7 高级服务
    • 互联网信息服务
    • IIS 可托管 Web 核心
    • Windows 进程激活服务
  3. 重启。

  4. 从 中删除了剩余的内容C:\Windows\System32\inetsrv
  5. 重新安装上面所有未安装的功能。
  6. 重新安装URL 重写模块
  7. 小心地将 下方的相关元素<applicationPools><sites>备份 中的元素放回applicationHost.config新创建的 中C:\Windows\System32\inetsrv\Config\applicationHost.config
  8. iisreset为确保万无一失,请从提升的命令提示符执行。

好啦,我所有的开发站点都再次恢复了。

之后,我比较了备份文件和新applicationHost.config文件,没有发现任何重大差异。事实上,当我将备份文件放入applicationHost.configConfig 目录并运行另一个文件时iisreset,一切仍然正常,所以我猜问题并不是出在那个文件上。

答案3

最近一次 Windows 更新后,我也遇到了这种情况。关闭 Windows 功能中的 Windows 进程激活服务,然后重新打开,对我来说就解决了问题。关闭此服务也会关闭以下功能,但您也必须重新打开这些功能:

  • Windows Communication Foundation 非 HTTP 激活
  • TCP 激活
  • 命名管道激活
  • 消息队列 (MSMQ) 激活

答案4

我的问题(可能不是你的)是 machine.config 文件中存在错误的 XML。

如果您刚刚编辑了 machine.config,而 WAS(和 IIS)无法启动,那就是因为这个原因。

相关内容