Windows SBS 2011 仪表板 + Windows Server * 由于 Windows Server 服务提供商注册表服务,服务无法启动

Windows SBS 2011 仪表板 + Windows Server * 由于 Windows Server 服务提供商注册表服务,服务无法启动

我有一台 Windows Server SBS 2011 Box,它遇到了一些与Windows Server 服务提供商注册表。许多 Windows 服务器服务在启动时遇到问题,我将其追溯到此服务。它的依赖项已启动并运行,我可以看到没有错误。

这是我尝试启动服务时收到的错误:

Error 1067: The process terminated unexpectedly.

事件查看器错误如下所列 (2)

https://i.stack.imgur.com/ebzbv.png

还有一个.Net错误:

Source: .Net Runtime
Event ID: 1025

Application: ProviderRegistryService.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: Unhandled exception in OnStart: System.InvalidOperationException: Service ServiceRegistryProvider was not found on computer '.'. ---> System.ComponentModel.Win32Exception: The specified service does not exist as an installed service
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.GenerateNames()
   at System.ServiceProcess.ServiceController.get_DisplayName()
   at Microsoft.WindowsServerSolutions.Common.ServiceUtility.GetDisplayName(String serviceName)
   at Microsoft.WindowsServerSolutions.Common.ProviderFramework.ProductConfigurator.LogServiceStartFailure(String serviceName, String info)
   at Microsoft.WindowsServerSolutions.Common.ProviderFramework.ProviderRegistry.ServiceShell.OpenHost()
   at Microsoft.WindowsServerSolutions.Common.Services.WssgServiceBase.OnStart(String[] args)
Stack:
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.WindowsServerSolutions.Common.Services.WssgServiceBase.OnStart(System.String[])
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

经过一些研究我发现了一些类似的情况,其中 1 涉及服务使用的端口,我似乎无法在任何地方找到该端口,包括该服务的配置文件。

我最近对文件和整个服务器运行了 SFC 扫描,没有返回任何错误。我想知道我是否需要尝试重新安装服务,或者它是否可能是 .Net 错误等。任何帮助都将不胜感激。

答案1

我也遇到了这个问题,但是我发现了一个TechNet 主题这确实帮助我找到了解决这个问题的线索。基本上,问题是服务器身份证书不知何故从证书存储中删除了,需要重新生成。当证书丢失时,会导致“Windows Server 服务提供商注册表”服务失败,进而导致一堆其他依赖服务也失败。

我将重新发布我在下面的 TechNet 帖子中发布的内容。希望这对某些人有帮助!

我遇到了同样的问题!非常感谢 Robert 发布该脚本的链接!这真是一个很棒的 Powershell 脚本。

我遇到了 AK772 提到的所有错误,但我选择关注脚本指出的另一个问题。当我运行“测试 CA 基础设施”步骤时,它发现了几个错误。当我查看脚本在那里做什么时,它正在将注册表中的服务器证书指纹(HKLM:\Software\Microsoft\Windows Server\Identity)与个人证书(使用 MMC 的证书管理单元中的个人证书)进行比较。当我逐个查看它们时,果然注册表中的指纹不存在于我的证书存储中。我不知道怎么会发生这种情况!

然而,从那时起,我改变了我的谷歌搜索标准,并发现了以下精彩的文章:http://titlerequired.com/2013/04/29/windows-server-2012-essentials-an-error-prevented-the-dashboard-from-opening/

这进一步说明了该错误,并展示了如何在注册表中重新生成证书标识。这完全拯救了我!一旦我按照他概述的步骤操作,即使最后出​​现了超时错误,我也可以看到证书指纹在注册表中发生了变化,现在存在于我的个人证书存储中。

看到这个后,我尝试进入服务并手动启动已停止的“Windows Server Service Provider Registry”服务。果然,它立即启动了,这次没有错误。最后,我重新启动了服务器,以便所有其他依赖服务都会重新启动,然后重新运行上面链接的脚本,一切都很完美。

相关内容