Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Para aplicar este paquete acumulativo de revisiones, vaya al siguiente artículo de knowledge base y descargar el paquete de continuación de hotfix correcto:

2925383 el Hotfix rollup 2925383 está disponible para el.NET Framework 4.5.1 en Windows

Introducción

Este artículo describe el paquete acumulativo de revisiones 2908385 que está disponible para el Microsoft.NET Framework 4.5.1. Para obtener más información acerca del problema que resuelve el hotfix, consulte la sección "Más información".

Este paquete acumulativo de revisiones está disponible para los sistemas operativos siguientes:

  • Windows 8

  • Windows Server 2012


Más información

Información de hotfix

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que describe este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Para resolver este problema, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: En casos especiales, los costos derivados normalmente de las 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. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Para aplicar este hotfix, debe tener el.NET Framework 4.5.1 instalado.

Requisito de reinicio

Tendrá que reiniciar el equipo después de aplicar esta revisión si se utilizan los archivos afectados. Se recomienda que cierre todas las aplicaciones basadas en.NET Framework antes de aplicar este hotfix.

Información de reemplazo de revisión

Este paquete de hotfix no sustituye a un paquete de revisiones publicadas anteriormente.


Problemas que resuelve este paquete acumulativo de revisiones

Problema 1

Symptoms

Se supone que se invoca el método Application.DoEventsdesde el controlador del evento ValueChanged de un control NumericUpDown . Por ejemplo, utilice el código siguiente:private void numericUpDown1_ValueChanged(object sender, EventArgs e){
for (int i = 0; i < 10; i++)
{
Application.DoEvents();
Thread.Sleep(10);
}
}
Cuando el hacia arriba o hacia abajo el botón de flecha está presionado durante varios segundos, el control crea un temporizador para generar repetida aumenta o disminuye. En Application.DoEvents el paso del temporizador se controla de nuevo. Esto provoca un nuevo evento ValueChanged . A continuación, vuelva a escribir el controlador de eventos tick temporizador. Cuando se suelta el botón del ratón, el temporizador se destruye en el controlador en la parte inferior de la pila, pero luego se vuelve a utilizar otra vez mientras se está desenredando la pila por los demás controladores. Esto provoca una excepción de referencia nula y un bloqueo.



Solución alternativa

Para evitar este problema, utilice BeginInvoke para llamar de forma asincrónica () Application.DoEventsdespués de procesa el evento timer. Por ejemplo, puede utilizar la clase siguiente para reemplazar el comportamiento predeterminado:public class MyNumericUpDown : System.Windows.Forms.NumericUpDown{
public NumericUpDown() : base()
{
}
protected override void OnValueChanged(EventArgs e)
{
// run the handler as a separate event to prevent re-entrance to prevent a NullRef when hitting.
if (IsHandleCreated)
BeginInvoke(new Action(() => base.OnValueChanged(e)));
else
base.OnValueChanged(e);
}
}
Nota: Por lo general, no recomendamos que se vuelva a escribir un bucle de mensaje (Application.DoEvents) desde un controlador de mensajes (ValueChanged se produce desde el controlador de mensajes de Timer.OnTick ), ya que esto podría provocar el desbordamiento de pila. Por ejemplo, el rango del control NumericUpDown es grande y el usuario mantiene presionado el botón de flecha durante mucho tiempo. Utilice BeginInvoke para evitar el desbordamiento de pila. Esta revisión no resuelve este problema.

Problema 2

Síntomas

Copiar texto con formato de un documento XPS largo puede tardar varios minutos, dependiendo de la posición del texto dentro del documento y puede hacer que la aplicación se congelen.

Cause

Este problema se produce porque algunas declaraciones de formato requieren digitalización del documento desde el principio hasta la selección deseada. Estas declaraciones son raras (proceden de elementos personalizados que tienen un atributo TextElementEditingBehaviorAttribute que no está marcado como IsTypographicOnly).

La lógica se cambia en esta revisión para evitar el análisis costoso cuando ninguna de dichas declaraciones aparecen en la selección deseada.

Problema 3

Síntomas

Un TextBlock de Windows Presentation Foundation (WPF) no puede mostrar uno o más caracteres al final de su texto. Este problema se produce cuando se cumplen las condiciones siguientes:

  • TextWrapping o TextTrimming está habilitada.

  • Relleno es distinto de cero, o TextFormattingMode es "Mostrar".

  • Ancho no está establecido o está establecido en "Auto".

  • El FontFamily, FontSize y caracteres específicos en el texto de conducen a un ancho desfavorable.

Cause

Este problema se produce debido a inexactitudes numéricos (redondeo error) que se pueden producir al calcular el ancho del texto, convertir el ancho entre los sistemas de coordenadas internos, Contabilidad para relleno y alinear el texto a los límites de píxeles para el modo de presentación.

Se ha agregado la protección contra estos tipos de imprecisiones en los cálculos para asegurarse de que se muestren todos los caracteres que se deben mostrar.

Problema 4

Objetos anclados pueden provocar demasiada fragmentación de la memoria de montón, causando una disminución del rendimiento. Esta revisión proporciona más eficiente reutilización de búferes de memoria, lo que minimiza la fragmentación de la memoria de montón.

Problema 5

A veces, una aplicación puede enfrentarse a una excepción de infracción de acceso durante el AppDomain apaga tras un operación de recolección de fondo.

Problema 6

Las herramientas de diagnóstico que realizar instrumentación de IL utilizando la API de generación de perfiles pueden causar la siguiente excepción no controlada se produce por common language runtime (CLR):

0X80131401 "= SECURITY_E_INCOMPATIBLE_SHARE. Carga este ensamblado, se produciría un conjunto de otras instancias de permisos diferente.


Además, el proceso se bloquea. Este problema sólo se produce cuando se utilizan herramientas diagnóstico.

Problema 7

Cuando se utiliza el punto de extensibilidad de Windows Communication Foundation (WCF) 4.5 HttpMessageHandler (también conocido como la canalización HTTP de WCF), el encabezado WWW-Authenticate no se puede establecer en HttpRequestMessage o HttpResponseMessage. Esto es porque el nuevo punto de extensibilidad de HttpMessageHandler utiliza un mecanismo diferente para controlar los encabezados.

Después de aplicar este hotfix, se ponen los dos mecanismos para agregar encabezados a la paridad y uno debe ser capaz de volver a agregar encabezados WWW-Authenticate.

Problema 8

El método SqlInternalConnectionTds.BreakConnection , se produce una excepción NullReferenceException . Este hotfix resuelve el problema de sincronización que conduce a la excepción NullReferenceException .

Problema 9

Síntomas

Supongamos que tiene una aplicación WCF que usa la clase BinaryMessageEncoder y el codificador utiliza un registro de texto UTF-8, según cada [MC-NBFX]. O bien, suponga que tiene una aplicación WCF que usa el método System.ServiceModel.Channels.Message.CreateBufferedCopy . Procesa un mensaje que contiene los caracteres del intervalo de u+10000 a U + 10FFFF (inclusive) que están representados en UTF-8, como una secuencia de 4 bytes. En esta situación, puede perderse el mensaje codificado binario y recibirá el siguiente mensaje de error:

System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderExceptionFallback'.Parameter name: chars
at System.Text.Encoding.ThrowCharsOverflow()
at System.Text.Encoding.ThrowCharsOverflow(DecoderNLS decoder, Boolean nothingDecoded)
at System.Text.UTF8Encoding.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, DecoderNLS baseDecoder)
at System.Text.DecoderNLS.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, Boolean flush)
at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex, Boolean flush)
at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)
at System.Xml.ValueHandle.TryReadChars(Char[] chars, Int32 offset, Int32 count, Int32& actual)
at System.Xml.XmlBaseReader.ReadValueChunk(Char[] chars, Int32 offset, Int32 count)
at System.Xml.XmlBinaryWriter.WriteTextNode(XmlDictionaryReader reader, Boolean attribute)
at System.Xml.XmlDictionaryWriter.WriteNode(XmlDictionaryReader reader, Boolean defattr)
at System.ServiceModel.Channels.ReceivedMessage.OnWriteBodyContents(XmlDictionaryWriter writer)
at System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer)
at System.ServiceModel.Channels.Message.OnCreateBufferedCopy(Int32 maxBufferSize, XmlDictionaryReaderQuotas quotas)
at System.ServiceModel.Channels.StreamedMessage.OnCreateBufferedCopy(Int32 maxBufferSize)
at System.ServiceModel.Channels.Message.CreateBufferedCopy(Int32 maxBufferSize)
at ConsoleApplication1.BufferRequestChannel.WrappingRequestContext.BufferMessage()

Cuando se produce este problema, el cliente de tiempo de espera sin una respuesta si la aplicación de WCF se hospeda a sí mismo. Si la aplicación de WCF hospedado en web (ASP.NET), el cliente recibirá un error de 500 servidor.

Causa

Este problema se produce debido a un detalle de implementación interna que a veces asigna espacio insuficiente cuando se descodifican las secuencias de caracteres de 4 bytes UTF-8.

Solución

Para resolver este problema, aplique la revisión. Después de aplicar la revisión, la aplicación WCF esperará a la siguiente
Método Read para descodificar los caracteres si hay suficiente espacio en el búfer de salida para descodificar caracteres Unicode multibyte.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×