对于.NET Framework 4.5,4.5.1,Vista SP2,Windows Server 2008 SP2,Windows 7 SP1 和 Windows Server 2008 R2 SP1 4.5.2 修补程序汇总包 2996568

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2996568
简介
本文介绍了适用于 Microsoft.NET Framework 4.5、.NET Framework 4.5.1 和.NET Framework 4.5.2 修补程序汇总 2996568。有关修补程序汇总包可以解决的问题的详细信息,请参阅"更多信息"部分。

此修补程序汇总包是适用于以下操作系统︰
  • Windows Server 2008 R2 SP1
  • Windows 7 SP1
  • Windows Server 2008 SP2
  • Windows Vista SP2

解决方案
受支持的修补程序现已从 Microsoft 推出。但是,它旨在纠正本文介绍的问题。它仅应用于正经历此特定问题的系统。

若要解决此问题,请联系 Microsoft 客户支持服务以获取此修复程序。有关 Microsoft 客户支持服务的电话号码和有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站︰注意: 在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能取消的通常情况下收取的电话支持服务费用。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。
更多信息

系统必备组件

若要应用此修补程序,必须具有.NET Framework 4.5、.NET Framework 4.5.1 或.NET Framework 4.5.2 安装。

重启要求

您需要重新启动计算机后,如果任何受影响的文件正在使用,则在应用此修补程序。我们建议您关闭所有基于.NET Framework 应用程序,然后再应用此修补程序。

修补程序替换信息

此修复程序包不替代以前发布的修补程序软件包。

此修补程序汇总解决的问题

问题 1
当您使用.NET Framework 4.5、.NET Framework 4.5.1 或.NET Framework 4.5.2,此修补程序解决System.IO.Packaging中的以下两个线程处理问题。
  • 在单独的线程上使用大的包,则可能会发生死锁。System.IO.Packaging使用IsolatedStorage为大于 10 兆字节 (MB) 的程序包。当两个或多个线程使用大的包时,则可能会出现死锁,即使是独立的软件包。死锁涉及到两个线程。一另在IsoloatedStorageFile类的另一个方法,等待时, IsolatedStorageFile.Lock在等待。通过将同步添加到System.IO.Packaging以避免IsolatedStorageFile中的问题,此问题已修复。
  • 从单独的线程打开的包中检索PackageProperties ,即使是独立的软件包时,可能会出现异常。由此引发的最常见的调用堆栈如下所示︰
    System.Xml.XmlException: Unrecognized root element in Core Properties part. Line 2, position 2.     atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part)     atSystem.IO.Packaging.Package.get_PackageProperties()
    System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.  Parameter name: id     atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part)     atSystem.IO.Packaging.Package.get_PackageProperties()
    此问题由争用共享内部资源,并且通过提供一份该资源的每个程序包来解决。

问题 2
收到的UIAutomation服务的多个请求时,Windows Presentation Foundation (WPF) 应用程序可以使用大量的内存。System.Threading命名空间中的对象所属的内存。这包括System.Threading.CancellationTokenSourceSystem.Threading.TimerQueueTimerSystem.Threading.Timer和其他几个相关的类。

这些是当 WPF 收到UIAutomation活动请求分配代表 WPF 对象。他们最终都被释放,直到请求超时期限过期 (通常三分钟)。如果快速到达请求,应用程序似乎正在泄漏内存,或使用更多内存比什么是合理的 (高达 500 MB)。

要解决该问题,请完成请求,而不是等待超时期限后释放对象。

问题 3

在 WPF 应用程序中,当您通过使用朝鲜语输入法编辑器 (IME),输入文本可编辑的组合框文本属性不更改正确在某些情况下。

此问题可能会出现不同的症状,并取决于应用程序 (或控件作者) 怎样配置组合框。例如︰
  • 在键入和删除选项卡 (或将焦点移到另一个控件之后),组合框的显示的文本将恢复为空字符串,或键入前的值。
  • 组合框TextSearch功能行为不正确。与前缀已输入不匹配或它无关的项匹配。
要解决该问题,请修改逻辑,以适应与其他输入法稍有不同的朝鲜语 ime 的计时。

问题 4

触摸屏输入用于在 WPF 应用程序中执行拖放操作之后下, 一步的接触势将被忽略。

通过拖放操作完成时还原触摸输入处理程序的内部状态来解决此问题。以这种方式,它计算下一步的触摸笔势的位置正确。

问题 5

可以有选择地启用新的AuthenticationManager实现获得显著的性能,当您使用自定义IAuthenticationModules

注意如果代码不是线程安全,出现了主要的安全风险。主要行为更改位于PreAuthenticate身份验证方法。以前它保证以串行方式执行的代码 (获取了全局锁)。在新的实施中,采取无锁,和客户代码必须保证线程安全。
此外,用新的实现中, PrefixLookup高速缓存大小可以控制通过注册表中。

可以使用以下注册表项来启用和配置PrefixLookup的最大长度︰
  • 全局配置
    [HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001"System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000
  • 本地应用程序配置
    [HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.HighPerformance]"c:\myapp\myapp.exe"=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.PrefixLookupMaxCount]"c:\myapp\myapp.exe"=dword:00010000
全局设置的优先级必须高于本地应用程序设置。可以混合使用全局和本地应用程序设置。如果全局或本地应用程序性能设置设置为dword 值 1PrefixLookupMaxCount不会受到影响。

问题 6

假定您运行的应用程序基于.NET Framework 4.5、.NET Framework 4.5.1 或.NET Framework 4.5.2。该应用程序的托管方法从本机代码调用,并通过引用传递的 COM 接口中引发异常。在此情况下,应用程序可能会崩溃。

例如︰ 在 VB6 中编写的应用程序调用 C# DLL。如果 C# 代码中引发异常时,已在发布模式下编译的应用程序和 DLL,发生访问冲突,并且应用程序崩溃。

问题 7

当工作流基于 XAML 的项目定义的生成 XAML 的任务远程对象的花长的时间,比默认的租约时间 (5 分钟) 时,您将收到类似于以下内容的错误消息︰
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Xaml.targets(193,5): XC1000 错误︰ XC1020: XAML MSBuild 任务中出现生成错误: 对象 / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem 已断开连接或服务器中不存在。
应用此修补程序后,您可以通过定义名为XamlBuildTaskRemotingLeaseLifetimeInMinutes的环境变量定义自己租约时间 (以分钟为单位)。

若要为 MSBuild 项目文件中设置环境变量,您必须在项目文件中包含下列信息︰
<Project ...>  <UsingTask TaskName="MySetEnv" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >    <ParameterGroup>      <Name Required="true" />      <Value Required="false" />    </ParameterGroup>    <Task>      <Code Type="Fragment" Language="cs">System.Environment.SetEnvironmentVariable(Name, Value);</Code>    </Task>  </UsingTask>......  <Target Name="BeforeBuild">    <MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="1440" />  </Target>  <Target Name="AfterBuild">    <MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="" />  </Target></Project>
在此示例中的任务名MySetEnv。它可以设置为任何适用于任务名称的字符串。本示例将租用时间设置为 1440 分钟 (一天) 之前的项目中,建筑物和建筑物后将它设置为 null。如果有需要延长租用时间的多个项目,每个项目都需要此配置。

问题 8

在页中使用 AJAX 回发时,有时会在回发被重定向到另一个 URL。您可以通过http 模块中的RedirectLocationHttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"]

警告:本文已自动翻译

属性

文章 ID:2996568 - 上次审阅时间:10/02/2016 08:13:00 - 修订版本: 2.0

Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2996568 KbMtzh
反馈