修复: 发生访问冲突时开始在 CLR 运行的应用程序

适用于: .NET Framework 3.5 Service Pack 1

症状


在公共语言运行时 (CLR) 运行的应用程序启动时,会发生访问冲突。 当符合下列条件时,可能会出现此问题:
  • 计算机已超过 32 安腾 (IA-64) 处理器。
  • 启用了服务器垃圾回收。

原因


在基于 Itanium 的系统上启用服务器垃圾回收时,没有一个数组,其中包含 32 元素存储堆。 不进行线程上的分配之前,应确定堆索引对应于当前的 CPU。 当 CPU 数量超过 32,发生访问冲突。

解决方案


修补程序替换信息

对应于 KB961881 的热修复程序已取代了该修补程序 KB981574,其中包含以前在 KB961881 中包含的所有修复程序。 应使用修补程序 KB981574 来解决 KB961881 中描述的问题。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981574 初始屏幕保持打开状态比平常再尝试在已安装.NET Framework 3.5 SP1 的计算机上启动 Excel 时

解决方法


要变通解决此问题,则可以使用工作站垃圾回收,而不是服务器垃圾回收。

状态


Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考


有关如何配置服务器上的垃圾回收的详细信息,请访问下面的 Microsoft 网站: