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


9

Windows进程激活服务(WAS)将不再在我的Windows 10 PC上启动。结果,IIS无法启动。我不太确定它何时发生,但可能在上个月。

在启动期间,我现在在系统日志中收到一系列4个错误事件:

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

WAS 5005:Windows进程激活服务(WAS)由于遇到错误而正在停止。数据字段包含错误号。[数据字段:50000780]

服务控制管理器7023:WAS服务终止,出现以下错误:文件存在。

服务控制管理器7001:W3SVC服务依赖于WAS服务,该服务由于以下错误而无法启动:该文件存在。

由于文件存在错误,我对这种类型的错误的引用不多。

(我尝试使用ProcMon尝试识别它所指的文件,但它绝对拒绝运行。)


编辑...终于使ProcMon可以正常工作(使用VS2017提取64位版本后)。原来,导致上述问题的文件是该C:\Windows\System32\inetsrv\Config文件夹中的“ applicationhost.config.tmp”文件。删除该文件使该过程可以继续进行。

现在,第一个和第三个错误是:

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 ]


类似的问题在这里讨论:stackoverflow.com/questions/47998508/...
格伦小



另一个:serverfault.com/questions/644833/… 这些都没有令人满意的答案。
Glen Little

Answers:


9

发生故障是因为WAS在启动期间无法访问机器密钥。升级后首次启动时,WAS将尝试创建新的机器密钥(如果没有),或查询旧OS留下的旧机器密钥。在这种情况下,存在旧的机器密钥,但是不幸的是,由于某些不清楚的原因,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
    • 通过“以管理员身份运行”打开命令提示符。
    • 净开始为

谢谢,@ yanbing-shi。请参阅我在问题中的回答。
Glen Little

我们取得了一些进展-至少成功创建了NetFrameworkConfigurationKey。我用其他步骤更新了答案。
Yanbing Shi

很高兴的解决方法可以阻止您。但是根本原因尚不清楚。肯定在升级过程中弄乱了与机器密钥相关的某些东西(IIS无法控制它)。旧机器密钥是由WAS在升级之前创建的,Windows升级会将这些密钥携带到新的OS中。但是,完全意外的是,以SYSTEM帐户运行的WAS无法访问以前由其自身创建的机器密钥。
Yanbing Shi

如果您按照我的解决方法步骤进行操作,并备份了三个旧的RSA机器密钥(1)NetFrameworkConfigurationKey(2)iisWasKey(3)iisConfigurationKey。如果您能为我提供以下信息,将不胜感激:如果将每个旧密钥(备份)与WAS重新创建的新密钥进行比较,它们是否具有相同的文件名-例如,“ *”部分(GUID)是否为相同?
Yanbing Shi

@YanbingShi这样解决了我的问题,谢谢。为了回答您的问题,重新创建的新密钥的名称与以前相同。我必须更改密钥文件的权限才能移动它们。我已经有权限,但是要删除,然后必须专门使其可共享,即右键单击>授予访问权限,然后单击共享
Swagata

4

对我来说,这是在昨天运行Windows Update之后开始的。此后安装的更新:

  • 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下,请勿取消选中Framework本身:
      • WCF HTTP激活
      • WCF非HTTP激活
    • .NET Framework 4.7高级服务
    • IIS
    • 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.config放到Config目录中并运行另一个目录时,iisreset一切仍然有效,所以我想毕竟不是那个文件引起了麻烦。


很高兴您能够解决这个问题。我以前已经完成了大部分操作,但是如果很快什么都没出现,我可能会再做一次,请更仔细地遵循您的方法。同时,我能够将开发切换为使用IIS Express而不是IIS,并且现在可以使用。
Glen Little

********请勿遵循此建议********。非常非常糟糕。让我在工作上落后一天。真的很糟糕。卸载.NET 3.5后,如果不进行大量工作就无法重新安装它。我很高兴能找到以下帖子,按照上述说明解决发生的情况。damirscorner.com/blog/posts/...
分形

1

在最近的Windows更新之后,这也发生在我身上。在Windows功能中关闭然后再打开Windows进程激活服务对我来说是成功的窍门。关闭此服务也将关闭以下功能,这些功能也将重新打开:

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

1
在这种情况下,关闭WPAS(打开配置API和流程模型)然后再打开它们无济于事。
Glen Little

1

您可以进行以下检查吗

  1. 检查是否具有此注册表项:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ WAS \ Parameters \ NanoSetup

我相信,如果遇到此类WAS启动失败,它应该存在。

  1. 检查在C:\ windows \ system32 \ inetsrv \ config(applicationHost.config所在的文件夹)下是否有一个名为applicationhost.config.tmp的文件。

该临时文件也应该存在,以解决此类故障。

  1. 在c:\ windows中打开iis.log,向下滚动到文件末尾,然后在日志中搜索最新错误。如果您可以在此处粘贴任何错误日志消息,我们将不胜感激。

现在,我怀疑您会在iis.log中看到错误。您可以在此处粘贴错误以缩小原因范围吗?


1-是的。2-是的。在上述问题中添加了日志条目。
格伦·利特尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.