Este artículo describe el paquete acumulativo de revisiones 2783808 para Microsoft.NET Framework 4.5 Service Pack 2 (SP2) en Windows 7, Windows 7 Service Pack 1 (SP1), Windows 2008 R2, Windows 2008 R2 SP1, Service Pack 2 de Windows 2008 y Windows Vista Service Pack 2. Este paquete acumulativo de revisiones está disponible para solucionar varios problemas en.NET Framework 4.5. Para obtener más información acerca de los problemas que resuelve el hotfix, consulte la sección "Problemas que resuelve este paquete acumulativo de revisiones".
Información de la revisión
Ahora hay un hotfix compatible de Microsoft. Sin embargo, sólo se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.
Para resolver este problema, póngase en contacto con servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:
Nota En casos especiales, los costos derivados normalmente de llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Se aplicarán los costos de soporte técnico usuales a las cuestiones y problemas que no guarden relación con la actualización en cuestión.
Requisitos previos
Para aplicar esta revisión, debe tener.NET Framework 4.5 SP1 instalado en Windows 7, Windows 7 SP1, Windows 2008 R2, Windows 2008 R2 SP1, Service Pack 2 de Windows 2008 o Windows Vista Service Pack 2.
Requisito de reinicio
Debe reiniciar el equipo después de aplicar esta revisión si se utilizan los archivos afectados. Se recomienda que cierre todas las aplicaciones de.NET Framework antes de aplicar esta revisión.
Información de la sustitución de hotfix
Este paquete de hotfix no sustituye a un paquete de revisiones publicadas anteriormente.
Información de archivo
Contraer esta imagenAmpliar esta imagen
La versión global de esta revisión tiene los atributos de archivo (u otros posteriores) que se enumeran en la tabla siguiente. Las fechas y horas de estos archivos se muestran en hora Universal coordinada (UTC). Cuando vea la información de archivo, se convierte en hora local. Para ver la diferencia entre la hora UTC y la hora local, utilice el
Zona horaria ficha en la
Fecha y hora elemento de Panel de Control.
Para todas las versiones basadas en x 86 compatibles de Windows 7, Windows 7 SP1, Service Pack 2 de Windows 2008 y Windows Vista Service Pack 2
Contraer esta tablaAmpliar esta tabla
| Nombre de archivo | Versión del archivo | Tamaño de archivo | Fecha | Hora | Plataforma |
|---|
| CLR.dll | 4.0.30319.19047 | 6,876,608 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,299,440 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscordbi.dll | 4.0.30319.19047 | 1,096,656 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscorlib.dll | 4.0.30319.19047 | 5,171,152 | 28-Nov-2012 | 02: 39 | x 86 |
| PresentationCore.dll | 4.0.30319.19047 | 3,224,560 | 28-Nov-2012 | 02: 39 | x 86 |
| PresentationFramework.dll | 4.0.30319.19047 | 6,187,016 | 28-Nov-2012 | 02: 39 | x 86 |
| SOS.dll | 4.0.30319.19047 | 746,944 | 28-Nov-2012 | 01: 28 | x 86 |
| System.dll | 4.0.30319.19047 | 3,449,288 | 28-Nov-2012 | 02: 39 | x 86 |
| System.IdentityModel.dll | 4.0.30319.19047 | 1,084,928 | 28-Nov-2012 | 02: 39 | x 86 |
| System.Printing.dll | 4.0.30319.19047 | 342,000 | 28-Nov-2012 | 02: 39 | x 86 |
| System.Runtime.Serialization.dll | 4.0.30319.19047 | 1,051,696 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.Channels.dll | 4.0.30319.19047 | 158,768 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.Discovery.dll | 4.0.30319.19047 | 312,360 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.dll | 4.0.30319.19047 | 6,368,784 | 28-Nov-2012 | 02: 39 | x 86 |
| WindowsBase.dll | 4.0.30319.19047 | 1,237,488 | 28-Nov-2012 | 02: 39 | x 86 |
Para todas las versiones basadas en x 64 compatibles de Windows 7, Windows 7 SP1, Windows 2008 R2, Windows 2008 R2 SP1, Service Pack 2 de Windows 2008 y Windows Vista Service Pack 2
Contraer esta tablaAmpliar esta tabla
| Nombre de archivo | Versión del archivo | Tamaño de archivo | Fecha | Hora | Plataforma |
|---|
| CLR.dll | 4.0.30319.19047 | 9,804,224 | 28-Nov-2012 | 33: 00 | x 64 |
| CLR.dll | 4.0.30319.19047 | 6,876,608 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,742,816 | 28-Nov-2012 | 33: 00 | x 64 |
| Mscordacwks.dll | 4.0.30319.19047 | 1,299,440 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscordbi.dll | 4.0.30319.19047 | 1,497,040 | 28-Nov-2012 | 33: 00 | x 64 |
| Mscordbi.dll | 4.0.30319.19047 | 1,096,656 | 28-Nov-2012 | 01: 28 | x 86 |
| Mscorlib.dll | 4.0.30319.19047 | 5,120,464 | 28-Nov-2012 | 33: 00 | x 64 |
| Mscorlib.dll | 4.0.30319.19047 | 5,171,152 | 28-Nov-2012 | 02: 39 | x 86 |
| PresentationCore.dll | 4.0.30319.19047 | 3,207,680 | 28-Nov-2012 | 33: 00 | x 64 |
| PresentationCore.dll | 4.0.30319.19047 | 3,224,560 | 28-Nov-2012 | 02: 39 | x 86 |
| PresentationFramework.dll | 4.0.30319.19047 | 6,187,016 | 28-Nov-2012 | 02: 39 | x 86 |
| SOS.dll | 4.0.30319.19047 | 785,344 | 28-Nov-2012 | 33: 00 | x 64 |
| SOS.dll | 4.0.30319.19047 | 746,944 | 28-Nov-2012 | 01: 28 | x 86 |
| System.dll | 4.0.30319.19047 | 3,449,288 | 28-Nov-2012 | 02: 39 | x 86 |
| System.IdentityModel.dll | 4.0.30319.19047 | 1,084,928 | 28-Nov-2012 | 02: 39 | x 86 |
| System.Printing.dll | 4.0.30319.19047 | 342,016 | 28-Nov-2012 | 33: 00 | x 64 |
| System.Printing.dll | 4.0.30319.19047 | 342,000 | 28-Nov-2012 | 02: 39 | x 86 |
| System.Runtime.Serialization.dll | 4.0.30319.19047 | 1,051,696 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.Channels.dll | 4.0.30319.19047 | 158,768 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.Discovery.dll | 4.0.30319.19047 | 312,360 | 28-Nov-2012 | 02: 39 | x 86 |
| System.ServiceModel.dll | 4.0.30319.19047 | 6,368,784 | 28-Nov-2012 | 02: 39 | x 86 |
| WindowsBase.dll | 4.0.30319.19047 | 1,237,488 | 28-Nov-2012 | 02: 39 | x 86 |
Contraer esta imagenAmpliar esta imagen
Problemas que resuelve este paquete acumulativo de revisiones
Common language runtime Problemas de (CLR)
Problema 1Cuando una aplicación de.NET Framework 4.5 intenta ejecutar la recolección de fondo en un equipo que tiene poca memoria, se puede producir un interbloqueo.
Problema 2El método
PerformanceCounterCategory.GetCategories no puede devolver una lista de rendimiento de las categorías de contador algunos sistemas operativos que utilizan configuraciones regionales que no sea inglés. Además, si una aplicación de.NET Framework ejecuta código similar al siguiente para enumerar las categorías de contador de rendimiento, se devuelve ningún valor:
PerformanceCounterCategory[] categories;
categories = PerformanceCounterCategory.GetCategories();
Console.WriteLine(categories.Length + " categories are registered on this computer");
Después de aplicar la revisión, debe agregar la nueva clave de configuración de LocalizedPerfCounter siguiente en el archivo de configuración para la aplicación de.NET Framework:
<configuration>
<appSettings>
<add key="LocalizedPerfCounter" value="true" />
</appSettings>
</configuration>Problemas de Windows Communication Foundation (WCF)
Problema 1
Supongamos que existe una aplicación que utiliza la clase WCF de
System.Xml.XmlDictionaryReader para leer UTF-8 codifica caracteres Unicode. Cuando la aplicación lee algunos caracteres Unicode que se encuentran dentro de un intervalo determinado, el proceso de lectura puede ser lento.
NotaPara obtener más información acerca de la clase System.Xml.XmlDictionaryReader, vaya al sitio Web de MSDN siguiente:
Problema 2En un equipo que se está ejecutando la 4.5 de.NET Framework o una versión anterior, las aplicaciones WCF no pueden tener acceso a un certificado de cliente si la propiedad HttpsTransportBindingElement.RequireClientCertificate se establece en
FALSE. Cuando una aplicación intenta tener acceso a los certificados de cliente, WCF funciona en uno de los siguientes modos:
- requerir o rechazar
- no requieren y no validar
En esta situación, no se puede crear una aplicación para el certificado de comprobación es permisiva (por ejemplo, no se puede crear una aplicación que utiliza el modo
no necesitan certificados pero valida si se proporciona ). Esta revisión permite que la aplicación Agregar una configuración de cada extremo que proporciona el certificado de cliente a las aplicaciones de WCF si el cliente proporciona el certificado. Sin embargo, el certificado es opcional. Las conexiones no serán rechazadas Si no se proporciona un certificado. Por ejemplo, un sitio Web puede intentar utilizar autenticación de formularios para validar un intento de acceso en un servidor y para otorgar permisos adicionales si se presenta la presencia de un certificado de cliente al servidor.
Para desarrollar la aplicación, crear un comportamiento de EndpointBehavior y, a continuación, agregue el comportamiento en un enlace del extremo. Por ejemplo, ejecute el siguiente código para crear y agregar el comportamiento:
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();
}
}
}
}Como alternativa, puede agregar la siguiente configuración de extremo a la colección de parámetros BindingParameter:
string ValidateOptionalClientCertificatesString = "wcf:HttpTransport:ValidateOptionalClientCertificates";
Dictionary<string, object> endpointSettings = new Dictionary<string, object>();
endpointSettings.Add(ValidateOptionalClientCertificatesString, true);
bindingParameters.Add(endpointSettings); Problema 3Cuando ejecuta un servicio WCF que es compatible con WS-Discovery a través de protocolo de datagramas de usuario (UDP) en un servidor, puede experimentar uno o varios de los problemas siguientes:
- Uso de CPU aumenta inesperadamente en el servidor.
- El tráfico de multidifusión es mayor de lo esperado.
- Se observan muchos mensajes de error de SOAP en una red donde se implementa.NET Framework 4.5 en todas o un subconjunto de equipos.
Esta revisión evita que los mensajes de error de SOAP que se devuelven desde un extremo UDP si se recibe un mensaje de multidifusión de WS-Discovery de un extremo que no está configurado para WS-Discovery.
NotaEstos problemas pueden producirse incluso si el servicio no se compiló como destino la 4.5 de.NET Framework. Estos problemas pueden aparecer en un entorno o la red en el que está presente en uno o más extremos 4.5 de.NET Framework.
Problemas de Windows Presentation Foundation (WPF)
Problema 1Rendimiento deficiente de la impresión se produce cuando utiliza el servicio de.NET Framework 4.5 en WPF para imprimir en una impresora de interfaz de dispositivo gráfico (GDI) en un sistema operativo. Este problema se produce si se cumplen las condiciones siguientes:
- El sistema operativo que aloja el servicio utiliza un idioma distinto del inglés.
- El sistema operativo tiene instalado uno de los siguientes productos:
- WPF versión 4.0
- WPF versión 4.5
- Versión 3.5 de WPF y la revisión que se describe en el siguiente artículo de Microsoft Knowledge Base (o una actualización que incluye esta revisión):
980294
(http://support.microsoft.com/kb/980294/
)
Caracteres de la fuente de código de barras se imprimen en la fuente Wingdings en un documento XPS que se crea mediante el uso de la versión 3.0 de.NET Framework
- Imprime un documento que tiene muchos bloques de texto.
Este problema se produce debido a que una operación de búsqueda se produce cada vez que el proceso de impresión llama a un bloque de texto para encontrar la fuente GDI que se utiliza para mostrar el texto. Aumenta el uso de recursos de la operación de búsqueda mediante la aplicación de la revisión que se distribuye en KB980294, WPF versión 4.0 y WPF versión 4.5. Además, el uso de recursos de la operación de búsqueda domina el uso de recursos global del proceso de impresión. Este hotfix resuelve un problema conocido en la lógica que almacena en caché los resultados de la operación de búsqueda. Después de aplicar la revisión, el uso de recursos de la operación de búsqueda se produce una vez según la fuente GDI en lugar de que se produzca una vez por cada bloque de texto.
Problema 2Tenga en cuenta la situación siguiente:
- Tiene una aplicación de.NET Framework 4.5 que contiene un control editable en WPF. El control utiliza un Editor de métodos de entrada (IME).
- Especificar texto en el control.
- El control puede cambiar el texto que se introduce. Los siguientes son ejemplos de este comportamiento:
- Se supone que tiene un cuadro de texto control tiene la propiedad de texto enlazado a datos. El desencadenador de código fuente de actualización para un enlace TextBox.Text de la propiedad se establece en PropertyChanged. Cuando escriba el texto, se envía a una propiedad de un elemento de datos subyacente que se describe en la ruta de acceso del enlace. Además, el texto puede sustituirse por una cadena diferente por el propio elemento de datos, así como los convertidores que participan en el enlace.
- Se supone que tiene un control de cuadro combinado editable al habilitar la opción de búsqueda de texto. Al introducir texto, el control de cuadro combinado intenta hacer coincidir el texto con respecto a la lista de las opciones disponibles. Si el control encuentra una opción que comience por el texto, el texto se reemplazará por el texto completo de la opción correspondiente.
- Habilita el IME enviar un mensaje WM_IME_CHAR a una aplicación de WPF cuando el control está en el estado de "texto ha sido modificado por el control".
NotaLa secuencia exacta de caracteres que hace que este mensaje difiere en gran medida entre IME distintos. Algunos IME nunca envían este mensaje en absoluto.
En este escenario, la aplicación basada en.NET Framework 4.5 puede bloquearse junto con una excepción System.InvalidOperationException.
Para resolver este problema, aplique la revisión. Este hotfix también resuelve un problema específico en el que Visual Studio 2012, produce un error al editar un Team Foundation Server (TFS) elemento junto con Engkoo Pinyin IME habilitado de trabajo. Ésta es una descripción detallada de ese problema:
Se supone que especifique texto en el campo "Asignado a" de un elemento de trabajo en Visual Studio 2012. Cuando, a continuación, presione ENTRAR después de introducir el texto, el IME Engkoo envía el mensaje WM_IME_CHAR. Por lo tanto, Visual Studio 2012 deja de funcionar.
NotaEntrada de texto enotros campos del elemento de trabajo TFS también pueden causar este problema.
NotaEsto también ocurre en WPF versión 4.0 o una versión anterior de WPF. Sin embargo, la revisión sólo se aplica a WPF versión 4.5.
Problema 3Tenga en cuenta la situación siguiente:
- Tiene una aplicación de WPF que declara una propiedad enlazada a datos. La propiedad enlazada a datos contiene un enlace que tiene una trayectoria compleja. Por ejemplo, el enlace tiene la ruta de acceso siguiente:
{Path=A.B.C.D} de enlace
- Se crea un modelo de datos que provoca una notificación de PropertyChanged para algunos componentes de la ruta de acceso en un subproceso de trabajo. Por ejemplo, el subproceso de trabajo genera una notificación de cambio de propiedad C.
Notas- El subproceso de trabajo puede ser cualquier subproceso distinto del subproceso de la interfaz de usuario.
- El subproceso de la interfaz de usuario es el subproceso que se declaró con la encuadernación.
- Antes de que el subproceso de la interfaz de usuario procese la notificación de PropertyChanged, el modelo de datos provoca otra notificación de PropertyChanged por un componente anterior de la ruta de acceso. Por ejemplo, tiene un subproceso genera una notificación de cambio de propiedad A.
NotaLa segunda notificación PropertyChanged puede ocurrir en cualquier subproceso. Esto incluye el subproceso de la interfaz de usuario.
En este caso, se pasa por alto la segunda notificación. Además, se produce pérdida de datos. Por ejemplo, la propiedad D Obtiene el valor original de la propiedad A. Sin embargo, el resultado esperado es esa propiedad que d. Obtiene el valor modificado de la propiedad A.
Nota Este problema también puede afectar a una versión anterior a WPF versión 4.5. Sin embargo, la revisión sólo se aplica a WPF versión 4.5.
Problema 4Tenga en cuenta la situación siguiente:
- Tiene una aplicación de WPF que se ejecuta código para declarar un control TextBlock y el código similar al siguiente:
<TextBlock TextTrimming="CharacterEllipses" TextWrapping="NoWrap">
- Escriba texto en una cadena larga que es de 9600 caracteres o más.
- Ejecutar la aplicación en un equipo que se está ejecutando WPF versión 4.5.
En este escenario, el control TextBlock muestra varias líneas de texto y extremos de cada línea de texto con puntos suspensivos. Por ejemplo, es el número de líneas que se muestran
n/ 9600.
Notan es un marcador de posición que representa la longitud del texto original. Sin embargo, el resultado esperado es que el control TextBlock muestra una sola línea de texto que termina con los puntos suspensivos.