NGen对我的电脑不满意,我找不到办法深入了解出了什么问题。
每次启动后,ngen都会记录以下消息:
.NET运行时优化服务 (clr_optimization_v2.0.50727_32) - 服务达到了瞬态限制 错误。将关闭。上次错误 从服务经理返回: 0x8000ffff。
当我尝试在命令行启动优化服务时,我会再次记录相同的错误。
我设法启动ngen服务并立即暂停队列(通过编写两行批处理文件,如下所示:
净开始 clr_optimization_v2.0.50727_32
ngen队列暂停
所以现在我尝试通过执行不同状态级别的项目来清除队列,如下所示:
ngen executionqueueditems 3 / nologo /冗长
但结果总是如此:
灾难性失败(来自的例外) HRESULT:0x8000FFFF(E_UNEXPECTED))
...我一直在卸载/重新安装visual studio 2008。 我已经卸载了SQL Server 2005,并且我运行了'系统文件检查器': sfc / scannow
缺乏想法,并希望得到ngen专家的帮助。
我如何获得诸如此类的信息 “是什么导致了这些灾难性的失败?” (请注意,/ verbose选项不会增加我发现的信息量。 “队列中要生成哪些文件?” - 我可以删除其中的一些文件,或将责任归咎于特定文件...
卸载并重新安装.net framework 2.0并不容易,因为这是vista,它是操作系统的受保护部分。
更新: 我也尝试了here提供的建议(并在第一个回复中提到) - 但我只是得到了同样的灾难性失败信息。
C:\的Windows \ Microsoft.NET \框架\ V2.0.50727> NGEN executequeueditems / nologo 灾难性的失败(例外 HRESULT:0x8000FFFF(E_UNEXPECTED))
答案 0 :(得分:3)
回答这部分问题:
“是什么导致了这些灾难性的灾难 失败?“
有两个日志文件可以帮助解决这个问题:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.log
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen_service.log
(和通常的应用程序日志一样,虽然不太有帮助)
回答:
“队列中有哪些文件 产生?“
通常的答案是,可以通过运行来看到:
ngen.exe display
(虽然在我的情况下它只返回
NGEN Roots:
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
)
答案 1 :(得分:2)
我遇到了同样的问题(安装Asp MVC 1.0)。 寻找答案我已经发现Haacked Blog已经解释了一些原因。 花了2个小时试图解决这个问题,我感到非常沮丧,以至于我已经使用了
ngen /delete *
有效。但我不确定它是否会造成小小的灾难; /
也许这会有所帮助..
答案 2 :(得分:1)
来自this:
.NET运行时优化服务 试图重新编译 组件遇到它时的情况 认为是短暂的错误; 示例包括RPC错误, 内存不足错误等。但是, 之后它试图编译相同的 组装20次,但仍然失败 为此,它输出上面的消息 并关闭。我明白你了 已经尝试卸载.NET 来自您的机器的Framework 2.0 重新安装它,但你还有 这个错误。我在猜测 修复安装没有帮助 无论是。你可以尝试跑步吗? 随后是“ngen.exe ExecuteQueuedItems” 来自“ngen.exe更新” %WINDIR%\ Microsoft.NET \框架\ V2.0.50727 \? 那将尝试编译所有 尚未拥有的程序集 任何/最新的32位NGen图像 同步而不经过 优化服务。一旦 更新命令完成,你能一次吗? 再次尝试启动服务和 检查你是否还能得到 系统日志中的相同消息?如果 这个问题并不是特定的 服务,我希望你会看到 命令行中的编译错误 输出也是如此。