Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Per applicare questo hotfix cumulativo, visitare il seguente articolo della knowledge base e scaricare il pacchetto cumulativo di corretto:

2925383 2925383 di aggiornamento cumulativo è disponibile per il.NET Framework 4.5.1 in Windows

Introduzione

In questo articolo viene hotfix cumulativo 2908385 disponibile per il Microsoft.NET Framework 4.5.1. Per ulteriori informazioni sull'aggiornamento rapido risolve il problema, vedere la sezione "Informazioni".

Questo hotfix cumulativo è disponibile per i sistemi operativi seguenti:

  • Windows 8

  • Windows Server 2012


Ulteriori informazioni

Informazioni sull'hotfix

Un hotfix supportato è ora disponibile da Microsoft. Tuttavia, destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico.

Per risolvere questo problema, contattare il supporto tecnico clienti Microsoft per ottenere l'hotfix. Per un elenco completo dei numeri di telefono supporto tecnico clienti Microsoft e informazioni sui costi dell'assistenza, visitare il seguente sito Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: In casi particolari, le spese normalmente addebitate per le chiamate di supporto potrebbero essere annullate qualora un addetto al supporto Microsoft determina che uno specifico aggiornamento risolverà il problema. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.

Prerequisiti

Per applicare questo hotfix, è necessario disporre di.NET Framework installato 4.5.1.

Richiesta di riavvio

È necessario riavviare il computer dopo avere applicato questo hotfix se vengono utilizzati i file interessati. Si consiglia di chiudere tutte le applicazioni basate su.NET Framework prima di applicare questo hotfix.

Informazioni sulla sostituzione dell'aggiornamento rapido

Questo hotfix non sostituisce un pacchetto di hotfix precedentemente rilasciato.


Problemi che risolve questo hotfix cumulativo

Problema 1

Symptoms

Si supponga che si richiama il metodo Application. DoEvents() il gestore dell'evento ValueChanged di un controllo NumericUpDown . Ad esempio, si utilizza il seguente codice:private void numericUpDown1_ValueChanged(object sender, EventArgs e){
for (int i = 0; i < 10; i++)
{
Application.DoEvents();
Thread.Sleep(10);
}
}
Quando il o pulsante freccia giù viene premuto per alcuni secondi, il controllo crea un timer per generare ripetute incrementa o decrementa. In Application. DoEvents i segni di graduazione del timer viene gestito nuovamente. In questo modo un nuovo evento ValueChanged . Quindi ritornate al gestore dell'evento tick del timer. Quando il pulsante del mouse viene rilasciato, il timer viene eliminato durante il gestore nella parte inferiore dello stack, ma viene quindi riutilizzato nuovamente come stack viene rimossa da altri gestori. Ciò causa un'eccezione di riferimento null e un arresto anomalo.



Soluzione alternativa

Per risolvere questo problema, utilizzare BeginInvoke per chiamare in modo asincrono () Application. DoEventsdopo l'elaborazione dell'evento timer. Ad esempio, utilizzare la classe seguente per eseguire l'override del comportamento predefinito: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: In genere, si consiglia di non reinserire un ciclo di messaggi (Application. DoEvents) da un gestore di messaggi (ValueChanged viene generato dal gestore messaggi Timer.OnTick ), in quanto ciò potrebbe provocare un overflow dello stack. Ad esempio, l'intervallo del controllo NumericUpDown è grande e l'utente tiene premuto il tasto a freccia per molto tempo. Utilizzare BeginInvoke per evitare l'overflow dello stack. Questo hotfix non risolvere il problema.

Problema 2

Sintomi

Copia di testo formattata da un lungo documento XPS può richiedere alcuni minuti, in base alla posizione del testo all'interno del documento e può causare l'applicazione bloccare.

Cause

Questo problema si verifica perché alcune dichiarazioni di formattazione richiedono l'analisi del documento dall'inizio fino a quella desiderata. Queste dichiarazioni sono rare (provengono da elementi personalizzati che hanno un attributo TextElementEditingBehaviorAttribute IsTypographicOnlynon contrassegnato).

La logica viene cambiata in questo hotfix per evitare la scansione costosa quando tali dichiarazioni non vengono visualizzati nella selezione desiderata.

Problema 3

Sintomi

Un controllo TextBlock Windows Presentation Foundation (WPF) non vengano visualizzati uno o più caratteri alla fine del testo. Questo problema si verifica quando sono vere le seguenti condizioni:

  • TextWrapping o TextTrimming è abilitata.

  • Spaziatura interna è diverso da zero o TextFormattingMode è "Visualizzazione".

  • Larghezza non è impostata o è impostata su "Auto".

  • La FontFamily, FontSize e caratteri specifici del testo portare a una larghezza sfavorevole.

Cause

Questo problema si verifica a causa di imprecisioni numeriche (errore un arrotondamento) che possono verificarsi durante l'elaborazione la larghezza del testo, la conversione tra sistemi di coordinate interni, contabilità per allineare il testo nei limiti dei pixel per la modalità di visualizzazione e la spaziatura interna di larghezza.

Protezione contro questi tipi di imprecisioni è stata aggiunta per i calcoli, per assicurarsi che tutti i caratteri che devono essere visualizzati verranno visualizzati.

Problema 4

Blocco di oggetti possono causare un'eccessiva frammentazione della memoria heap, causando una riduzione delle prestazioni. Questa correzione fornisce più efficiente riutilizzo del buffer di memoria, che riduce al minimo la frammentazione della memoria heap.

Problema 5

In alcuni casi, un'applicazione può verificarsi un'eccezione di violazione di accesso durante l'AppDomain arrestato dopo un'operazione di Garbage Collection in background.

Problema 6

Gli strumenti di diagnostica che utilizzando l'API di analisi strumentazione IL possono causare la seguente eccezione non gestita generata da common language runtime (CLR):

0X80131401 "= SECURITY_E_INCOMPATIBLE_SHARE. Il caricamento di assembly produrrà una concessione diversa impostata da altre istanze.


Inoltre, il processo si blocca. Questo problema si verifica solo quando si utilizzano gli strumenti di diagnostica.

Problema 7

Quando si utilizza il punto di estendibilità di Windows Communication Foundation (WCF) 4.5 HttpMessageHandler (noto anche come la Pipeline HTTP di WCF), è possibile impostare l'intestazione WWW-Authenticate su HttpRequestMessage o HttpResponseMessage. Questo avviene perché il nuovo punto di estendibilità HttpMessageHandler utilizza un meccanismo diverso per la gestione di intestazioni.

Dopo avere applicato questo hotfix, i due meccanismi per aggiungere intestazioni siano portati a parità e uno deve essere in grado di aggiungere nuovamente le intestazioni WWW-Authenticate.

Problema 8

Un'eccezione NullReferenceException viene generata dal metodo SqlInternalConnectionTds.BreakConnection . Questo hotfix risolve il problema di temporizzazione che genera l'eccezione NullReferenceException .

Problema 9

Sintomi

Si supponga di disporre di un'applicazione WCF che utilizza la classe BinaryMessageEncoder e il codificatore utilizza un record di testo UTF-8 in base al [[MC-NBFX]]. In alternativa, si supponga di disporre di un'applicazione WCF che utilizza il metodo System.ServiceModel.Channels.Message.CreateBufferedCopy . Un messaggio viene elaborato che contiene i caratteri nell'intervallo di U + 10000 e U + 10FFFF (inclusi) che sono rappresentati come una sequenza di 4 byte UTF-8. In questa situazione, il messaggio binario codificato potrebbe essere perso e viene visualizzato il seguente messaggio di errore:

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()

Quando si verifica questo problema, il timeout del client senza una risposta se l'applicazione WCF è indipendente. Se l'applicazione WCF ospitato dal web (ASP.NET), il client riceverà un errore del 500 server.

Causa

Questo problema si verifica a causa di un dettaglio di implementazione interni che talvolta alloca spazio insufficiente quando le sequenze di caratteri UTF-8 a 4 byte vengono decodificate.

Risoluzione

Per risolvere questo problema, applicare l'aggiornamento rapido. Dopo avere applicato l'hotfix, l'applicazione WCF dovrà attendere il successivo
Metodo di lettura per decodificare i caratteri, se non vi è spazio sufficiente nel buffer di output per decodificare i caratteri Unicode multibyte.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×