Microsoft .NET Framework NGEN 服务启动然后立即停止

Microsoft .NET Framework NGEN 服务启动然后立即停止

我正在查看用作 Azure Web 角色实例的 Windows Server 2008 R2 计算机的系统日志,并且看到来自服务控制管理器的以下消息:

2:28:28 PM The Microsoft .NET Framework NGEN v4.0.30319_X86 service entered the running state.
2:28:28 PM The Microsoft .NET Framework NGEN v4.0.30319_X86 service entered the stopped state.
2:28:28 PM The Portable Device Enumerator Service service entered the stopped state.
2:28:29 PM The Microsoft .NET Framework NGEN v4.0.30319_X64 service entered the running state.
2:28:29 PM The Microsoft .NET Framework NGEN v4.0.30319_X64 service entered the stopped state.

这看起来很可疑——为什么 NGEN 服务启动后又立即停止?

发生了什么事?这是正常现象吗?

答案1

我们在安装每个版本的 .Net 框架时都遇到过这种情况 - 事实证明 NGEN 服务是原始图像GENerator,而不是 Next Gen 或其他东西,我曾一度认为它是。

无论如何,发生的事情确实很烦人,但这并不可疑,也不是恶意软件、错误或损害您的计算机。您发布的日志表明该服务正在预先编译 .Net 框架,并在完成后立即关闭该服务。但是,作为一名拥有 20 多年经验的 C、C++、C#、Objective-C 等开发人员……我不确定为什么 Microsoft 将其安装为“自动”启动类型。此外,我不确定为什么编译需要运行多次(除非有补丁发布或其他情况)。但是,我不知道这些答案……所以,我只会坚持我发现有帮助的建议!

该问题还导致 2012+ 服务器的服务器管理器出现许多问题,出现红色警告,提示设置为自动启动的服务已停止。

从我(和我的团队)所做的所有研究来看,我们发现最好的办法是将服务设置为手动启动配置。

这样,Windows 服务管理器将在必要时启动它,但不会一直尝试不必要地启动(然后停止)。这应该可以减轻一些日志喷涌。它完全消除了有关 100 多个 Windows 服务器和 200 个客户端工作站上未运行服务的警告。 但是,请不要执行此更改,除非您在非生产计算机上执行此更改或确定它不会产生任何不利影响。

尽管我们在使用此解决方法时没有遇到任何问题,但这并不意味着不存在问题 - 因此在更改它时一定要小心!

希望这可以帮助!

相关内容