本文介绍在 Windows 7,Windows 7 Service Pack 1 (SP1)、 Windows 2008 R2、 Windows 2008 R2 SP1,Windows 2008 SP2 中和 Windows Vista SP2 Microsoft.NET Framework 4.5 Service Pack 2 (SP2) 的修补程序汇总包 2783808。此修补程序汇总包,可解决框架 4.5 中的几个问题。有关修补程序解决的问题的详细信息,请参阅"此修补程序汇总包可以解决问题"一节。
热修复补丁程序信息
现在可以从 Microsoft 获得支持的修补程序。但是,它被用于更正本文所描述的问题。它仅应用于正经历此特定问题的系统。
要解决此问题,请联系 Microsoft 客户支持服务,以获取此修复程序。Microsoft 客户支持服务的电话号码和有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站:
注意 在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能会被取消免收支持电话的费用。到其他支持问题和事项,不需要进行专门更新的应用将正常收取支持费用。
先决条件
若要应用此修补程序,您必须具有 the.NET Framework 4.5 SP1 安装在 Windows 7,Windows 7 SP1,Windows 2008 R2、 Windows 2008 R2 SP1,Windows 2008 SP2 中或 Windows Vista SP2。
重新启动要求
如果正在使用任何受影响的文件,则在应用此修补程序后,您必须重新启动计算机。我们建议您在应用此修补程序前关闭所有.NET Framework 应用程序。
修补程序替换信息
此修复程序包不替代以前发布的修补程序包。
文件信息
此修复程序的全球版本具有的文件属性 (或更新的文件属性) 下表中列出。协调世界时 (UTC) 中列出了这些文件的日期和时间。当您查看文件信息时,它已转换为当地时间。要了解 UTC 与本地时间之间的时差,请使用
时区 在选项卡
日期和时间 在控制面板中的项。
所有受支持的基于 x86 的 Windows 7,Windows 7 SP1 和 Windows 2008 SP2 Windows Vista SP2 的版本
收起该表格展开该表格
| 文件的名称 | 文件版本 | 文件大小 | 日期 | 时间 | 平台 |
|---|
| Clr.dll | 4.0.30319.19047 | 6,876,608 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,299,440 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscordbi.dll | 4.0.30319.19047 | 1,096,656 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscorlib.dll | 4.0.30319.19047 | 5,171,152 | 2012-11 月 28 日 | 02: 39 | x86 |
| Presentationcore.dll | 4.0.30319.19047 | 3,224,560 | 2012-11 月 28 日 | 02: 39 | x86 |
| Presentationframework.dll | 4.0.30319.19047 | 6,187,016 | 2012-11 月 28 日 | 02: 39 | x86 |
| Sos.dll | 4.0.30319.19047 | 746,944 | 2012-11 月 28 日 | 01: 28 | x86 |
| System.dll) | 4.0.30319.19047 | 3,449,288 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.identitymodel.dll | 4.0.30319.19047 | 1,084,928 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.printing.dll | 4.0.30319.19047 | 342,000 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.runtime.serialization.dll | 4.0.30319.19047 | 1,051,696 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.channels.dll | 4.0.30319.19047 | 158,768 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.discovery.dll | 4.0.30319.19047 | 312,360 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.dll | 4.0.30319.19047 | 6,368,784 | 2012-11 月 28 日 | 02: 39 | x86 |
| Windowsbase.dll | 4.0.30319.19047 | 1,237,488 | 2012-11 月 28 日 | 02: 39 | x86 |
对于所有支持基于 x64 版本的 Windows 7,Windows 7 SP1,Windows 2008 R2、 Windows 2008 R2 SP1,Windows 2008 SP2 和 Windows Vista SP2
收起该表格展开该表格
| 文件的名称 | 文件版本 | 文件大小 | 日期 | 时间 | 平台 |
|---|
| Clr.dll | 4.0.30319.19047 | 9,804,224 | 2012-11 月 28 日 | 00: 33 | x64 |
| Clr.dll | 4.0.30319.19047 | 6,876,608 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,742,816 | 2012-11 月 28 日 | 00: 33 | x64 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,299,440 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscordbi.dll | 4.0.30319.19047 | 1,497,040 | 2012-11 月 28 日 | 00: 33 | x64 |
| Mscordbi.dll | 4.0.30319.19047 | 1,096,656 | 2012-11 月 28 日 | 01: 28 | x86 |
| Mscorlib.dll | 4.0.30319.19047 | 5,120,464 | 2012-11 月 28 日 | 00: 33 | x64 |
| Mscorlib.dll | 4.0.30319.19047 | 5,171,152 | 2012-11 月 28 日 | 02: 39 | x86 |
| Presentationcore.dll | 4.0.30319.19047 | 3,207,680 | 2012-11 月 28 日 | 00: 33 | x64 |
| Presentationcore.dll | 4.0.30319.19047 | 3,224,560 | 2012-11 月 28 日 | 02: 39 | x86 |
| Presentationframework.dll | 4.0.30319.19047 | 6,187,016 | 2012-11 月 28 日 | 02: 39 | x86 |
| Sos.dll | 4.0.30319.19047 | 785,344 | 2012-11 月 28 日 | 00: 33 | x64 |
| Sos.dll | 4.0.30319.19047 | 746,944 | 2012-11 月 28 日 | 01: 28 | x86 |
| System.dll) | 4.0.30319.19047 | 3,449,288 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.identitymodel.dll | 4.0.30319.19047 | 1,084,928 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.printing.dll | 4.0.30319.19047 | 342,016 | 2012-11 月 28 日 | 00: 33 | x64 |
| System.printing.dll | 4.0.30319.19047 | 342,000 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.runtime.serialization.dll | 4.0.30319.19047 | 1,051,696 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.channels.dll | 4.0.30319.19047 | 158,768 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.discovery.dll | 4.0.30319.19047 | 312,360 | 2012-11 月 28 日 | 02: 39 | x86 |
| System.servicemodel.dll | 4.0.30319.19047 | 6,368,784 | 2012-11 月 28 日 | 02: 39 | x86 |
| Windowsbase.dll | 4.0.30319.19047 | 1,237,488 | 2012-11 月 28 日 | 02: 39 | x86 |
此修补程序汇总解决的问题
公共语言运行时(CLR) 问题
问题 1当一个应用程序,.NET Framework 4.5 尝试了内存不足的计算机上运行后台垃圾回收时,可能会发生死锁。
问题 2PerformanceCounterCategory.GetCategories方法不能返回的列表性能计数器类别使用非英语区域设置某些操作系统上。此外,如果一个应用程序,.NET Framework 运行时枚举性能计数器类别如下所示的代码,不返回任何值:
PerformanceCounterCategory[] categories;
categories = PerformanceCounterCategory.GetCategories();
Console.WriteLine(categories.Length + " categories are registered on this computer");
应用此修复程序后,必须为.NET Framework 应用程序在应用程序配置文件中添加以下新的 LocalizedPerfCounter 配置项:
<configuration>
<appSettings>
<add key="LocalizedPerfCounter" value="true" />
</appSettings>
</configuration>Windows 通信基础 (WCF) 问题
问题 1
假设有一个应用程序使用 WCF
System.Xml.XmlDictionaryReader类读取 utf-8 编码的 Unicode 字符。当应用程序读取在某些范围内某些 Unicode 字符时,读取的进程可能会很慢。
注意有关 System.Xml.XmlDictionaryReader 类的详细信息,请访问以下 MSDN 网站:
问题 2如果 HttpsTransportBindingElement.RequireClientCertificate 属性设置为
FALSE,计算机上正在运行.NET Framework 4.5 或早期版本,WCF 应用程序无法访问客户端证书。当应用程序尝试访问客户端证书时,WCF 以下列模式之一运行:
在这种情况下,不能创建哪些证书检查为许可的应用程序 (例如,您不能创建使用
不需要证书,但是如果提供验证模式的应用程序)。此修补程序使应用程序添加提供到 WCF 应用程序的客户端证书,如果客户端提供证书的每个终结点设置。但是,该证书是可选的。如果未提供证书,将不被拒绝连接。例如,一个网站可能会尝试使用 forms 身份验证来验证的访问尝试在服务器上,并授予其他权限,如果客户端证书的存在要提交给服务器。
若要开发的应用程序,创建一个 EndpointBehavior 的行为,然后将行为添加到该终结点的绑定。例如,您可以运行下面的代码创建和添加行为:
class ValidateOptionalClientCertificateBehavior : IEndpointBehavior
{
private const string ValidateOptionalClientCertificates = " wcf:HttpTransport:ValidateOptionalClientCertificates";
public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
{
IDictionary<string, object> endpointSettings = bindingParameters.Find<IDictionary<string, object>>();
if (endpointSettings == null)
{
endpointSettings = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
bindingParameters.Add(endpointSettings);
}
if (endpointSettings.ContainsKey(ValidateOptionalClientCertificates))
{
endpointSettings[ValidateOptionalClientCertificates] = true;
}
else
{
endpointSettings.Add(ValidateOptionalClientCertificates, true);
}
}
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
}
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
}
public void Validate(ServiceEndpoint endpoint)
{
if (endpoint.ListenUri.Scheme != "https")
{
throw new InvalidOperationException();
}
}
}
}或者,您可以添加下列终结点设置到 bindingParameters 集合:
string ValidateOptionalClientCertificatesString = "wcf:HttpTransport:ValidateOptionalClientCertificates";
Dictionary<string, object> endpointSettings = new Dictionary<string, object>();
endpointSettings.Add(ValidateOptionalClientCertificatesString, true);
bindingParameters.Add(endpointSettings); 问题 3当您运行在服务器支持 WS 发现通过用户数据报协议 (UDP) 的 WCF 服务时,您可能会遇到一个或多个下列问题:
- 在服务器上,CPU 使用率意外增加。
- 比预期大得多址广播的通信。
- 在网络所有.NET Framework 4.5 都部署的位置上观察到许多 SOAP 错误消息或计算机的子集。
此修补程序可防止正在如果 WS 发现没有配置的终结点上收到 WS 发现多址广播的消息从一个 UDP 终结点返回的 SOAP 错误消息。
注意即使目标.NET Framework 4.5 到未编译该服务,则可能会出现这些问题。环境或.NET Framework 4.5 处于一个或多个终结点上出现的网络中可能会出现这些问题。
Windows Presentation Foundation (WPF) 问题
问题 1使用 a.NET Framework 4.5 基于 WPF 服务在操作系统上使用图形设备接口 (GDI) 打印机打印时发生打印性能较差。如果满足以下条件,则会出现此问题:
- 承载该服务的操作系统使用非英语区域设置。
- 操作系统已安装以下产品之一:
- WPF 4.0 版
- WPF 4.5 版
- WPF 版本 3.5 和下面的 Microsoft 知识库文章中介绍的修补程序 (或升级修补程序包含此修补程序):
980294
(http://support.microsoft.com/kb/980294/
)
Wingdings 字体中使用.NET Framework 3.0 创建 XPS 文档中打印条形码字体中的字符
- 在打印文档中包含多个文本块。
由于发生了查找操作在每次打印过程调用要查找的 GDI 字体用于显示文本的文本块,则会出现此问题。通过应用的修复程序分布式 4.5 KB980294、 WPF 4.0 版本后和 WPF 版本中增加的查找操作的资源使用情况。此外,查找操作的资源利用支配着打印过程的总体资源使用的情况。此修补程序解决缓存查找操作结果的逻辑中的已知的问题。应用此修复程序后,查找操作的资源使用情况发生一次每个 GDI 字体而不是文本块的每一次发生。
问题 2请考虑以下情形:
- 您有一个基于.NET Framework 4.5 的应用程序包含可编辑的 WPF 控件。该控件使用输入法编辑器 (IME)。
- 您在控件中输入文本。
- 该控件可以更改输入的文本。这种现象的示例如下:
- 假定您有一个文本框控件具有数据绑定文本属性。TextBox.Text 属性的绑定更新源触发器设置为PropertyChanged。当您输入文本,将其发送到基础数据项目的绑定路径中所描述的属性。此外,该文本可以替换成不同的字符串由数据项本身,或涉及到绑定中的转换器。
- 假定您有一个可编辑的组合框控件启用文本搜索设置。输入文本时,组合框控件将尝试匹配的文本根据可用的选项的列表。如果找到了该控件文本开头,一个选项,匹配选项的完整文本将替换文本。
- 启用输入法时该控件处于"已被修改文本控件"状态将 WM_IME_CHAR 消息发送到 WPF 应用程序。
注意导致此消息的确切字符序列不同的 Ime 之间有很大差异。某些 Ime 从不发送此消息。
在这种情况下,.NET Framework 4.5 基于的应用程序可能会崩溃以及 System.InvalidOperationException 异常。
若要解决此问题,请应用此修复程序。此修补程序还解决 Visual Studio 2012 崩溃时编辑 Team Foundation Server (TFS) 的特定问题工作项以及启用 Engkoo 拼音输入法。下面是该问题的详细的说明:
假定您在 Visual Studio 2012 中的工作项的"指派给"字段中输入文本。然后按 Enter 后输入文本时,Engkoo 输入法的 WM_IME_CHAR 消息发送。因此,Visual Studio 2012 崩溃。
注意输入到文本的 TFS 工作项的其他字段也可能会导致此问题。
注意WPF 4.0 版或较早版本的 WPF 中,也会发生此问题。但是,此修复程序仅适用于 WPF 4.5 版。
问题 3请考虑以下情形:
- 必须声明一个数据绑定属性的 WPF 应用程序。数据绑定属性包含具有复杂路径的绑定。例如,绑定具有以下路径:
{绑定 Path=A.B.C.D}
- 您创建的数据模型引发某些组件的 PropertyChanged 通知的工作线程上的路径。例如,辅助线程引发更改通知属性 c。
备注- 辅助线程可以任何 UI 线程不同的线程。
- UI 线程是所声明的绑定的线程。
- UI 线程处理 PropertyChanged 通知之前,数据模型将引发另一个 PropertyChanged 通知早期组件的路径。例如,您有一个线程引发更改通知的属性 a。
注意第二个 PropertyChanged 通知可以在任何线程上发生。这包括在 UI 线程。
在这种情况下,第二个通知将被忽略。此外,会发生数据丢失。例如,D 属性获得答: 属性的原始值但是,预期的结果是属性的 D 获得更改后的值答: 该属性
注意此问题也可能影响 WPF 4.5 版比早期版本。但是,此修复程序仅适用于 WPF 4.5 版。
问题 4请考虑以下情形:
- 您有一个 WPF 运行应用程序代码,以声明 TextBlock 控件,并且代码类似于以下:
<TextBlock TextTrimming="CharacterEllipses" TextWrapping="NoWrap">
- 您输入的文本为一个长字符串 9600 个字符或更长时间。
- 您正在运行 WPF 4.5 版的计算机上运行应用程序。
在这种情况下,TextBlock 控件显示几行文本,并以文本的每一行结尾省略号。例如,是显示的行数
n/ 9600。
注意n 是一个占位符,表示原始文本的长度。但是,预期的结果是文本的 TextBlock 控件显示结尾省略号的一行。
文章编号: 2783808 - 最后修改: 2012年12月19日 - 修订: 1.0
这篇文章中的信息适用于:
- Microsoft .NET Framework 4.5
| kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2783808 KbMtzh |
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版:
2783808
(http://support.microsoft.com/kb/2783808/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。