Applies ToWindows 8 Windows RT Windows Server 2012 Standard Windows Server 2012 Standard

Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, τη συλλογή ενημερωμένων εκδόσεων, μεταβείτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft και λάβετε τη σωστή συλλογή επειγουσών επιδιορθώσεων:

2925383 Συλλογή επειγουσών επιδιορθώσεων 2925383 είναι διαθέσιμο για το .NET Framework 4.5.1 στα Windows

Εισαγωγή

Αυτό το άρθρο περιγράφει τη συλλογή επειγουσών επιδιορθώσεων 2908385 που είναι διαθέσιμη για το Microsoft .NET Framework 4.5.1. Για περισσότερες πληροφορίες σχετικά με το ζήτημα που επιλύεται από την επείγουσα επιδιόρθωση, ανατρέξτε στην ενότητα "Περισσότερες πληροφορίες".Αυτή η επείγουσα επιδιόρθωση, τη συλλογή ενημερωμένων εκδόσεων είναι διαθέσιμη για τα ακόλουθα λειτουργικά συστήματα:

  • Τα Windows 8

  • Windows Server 2012

Περισσότερες πληροφορίες

Πληροφορίες επείγουσας επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα.Για να επιλύσετε αυτό το ζήτημα, επικοινωνήστε με υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:

http://support.microsoft.com/contactus/?ws=supportΣημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ίσως ακυρωθούν εάν ο επαγγελματίας υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.

Προϋποθέσεις

Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε το .NET Framework 4.5.1 εγκατεστημένο.

Απαίτηση επανεκκίνησης

Πρέπει να κάνετε επανεκκίνηση του υπολογιστή μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, εάν χρησιμοποιούνται τα αρχεία που επηρεάζονται. Συνιστάται να κλείσετε όλες τις εφαρμογές που βασίζονται στο .NET Framework, πριν να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης

Αυτό το πακέτο επείγουσας επιδιόρθωσης δεν αντικαθιστά ένα πακέτο επείγουσας επιδιόρθωσης που κυκλοφόρησε στο παρελθόν.

Ζητήματα που επιλύει η συλλογή επειγουσών επιδιορθώσεων

Πρόβλημα 1

SymptomsΑς υποθέσουμε ότι καλείτε τη μέθοδο () Application.DoEventsαπό το πρόγραμμα χειρισμού από το συμβάν ValueChanged ενός στοιχείου ελέγχου NumericUpDown . Για παράδειγμα, χρησιμοποιήστε τον ακόλουθο κώδικα:private void numericUpDown1_ValueChanged(object sender, EventArgs e){ for (int i = 0; i < 10; i++) { Application.DoEvents(); Thread.Sleep(10); } } Όταν το επάνω ή κάτω βέλος για να πατηθεί για μερικά δευτερόλεπτα, το στοιχείο ελέγχου δημιουργεί ένα χρονόμετρο για να δημιουργήσετε επαναλαμβανόμενα διαστήματα ή μειώνεται. Application.DoEvents της υποδιαίρεσης του χρονιστή γίνεται ξανά. Αυτό έχει ως αποτέλεσμα ένα νέο συμβάν ValueChanged . Στη συνέχεια, ξανά το στοιχείο χειρισμού συμβάντος χρονομέτρησης υποδιαίρεσης. Όταν απελευθερωθεί το κουμπί του ποντικιού, το χρονόμετρο καταστρέφεται κατά τον χειρισμό στο κάτω μέρος της στοίβας, αλλά στη συνέχεια, χρησιμοποιείται εκ νέου ξανά όπως η στοίβα είναι γίνεται εξαγωγή από άλλα προγράμματα χειρισμού. Αυτό προκαλεί μια εξαίρεση αναφοράς null και μια διακοπή λειτουργίας.

Εναλλακτικός τρόπος αντιμετώπισηςΓια να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε BeginInvoke για ασύγχρονη κλήση ( Application.DoEvents), μετά την επεξεργασία του συμβάντος χρονομέτρησης. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την ακόλουθη κλάση για να παρακάμψετε την προεπιλεγμένη συμπεριφορά: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); }} Σημείωση Γενικά, συνιστάται η επιβεβαίωση βρόχος μηνύματος (Application.DoEvents) από ένα δείκτη χειρισμού μηνύματος (ValueChanged ενεργοποιείται από το πρόγραμμα χειρισμού μηνυμάτων Timer.OnTick ), επειδή αυτό θα μπορούσε να οδηγήσει σε υπερχείλιση στοίβας. Για παράδειγμα, η περιοχή του στοιχείου ελέγχου NumericUpDown είναι μεγάλη και ο χρήστης διατηρεί το κουμπί κάτω βέλους για μεγάλο χρονικό διάστημα. Χρησιμοποιήστε BeginInvoke για να αποφύγετε την υπερχείλιση στοίβας. Αυτή η επείγουσα επιδιόρθωση δεν αντιμετωπίζει αυτό το ζήτημα.

Πρόβλημα 2

Συμπτώματα

Αντιγραφή μορφοποιημένο κείμενο από ένα μεγάλο έγγραφο XPS μπορεί να διαρκέσει μερικά λεπτά, ανάλογα με τη θέση του κειμένου μέσα στο έγγραφο, και μπορεί να προκαλέσει την εφαρμογή για να σταθεροποιήσετε.CauseΑυτό το ζήτημα προκύπτει επειδή ορισμένες δηλώσεις μορφοποίησης απαιτούν τη σάρωση του εγγράφου από την αρχή μέχρι την επιθυμητή επιλογή. Αυτές οι δηλώσεις είναι σπάνιες (προέρχονται από τα προσαρμοσμένα στοιχεία που έχουν ένα χαρακτηριστικό TextElementEditingBehaviorAttribute που δεν έχει σημανθεί ως IsTypographicOnly).Η λογική αλλάζει σε αυτήν την επείγουσα επιδιόρθωση για να αποφύγετε την ακριβή ανίχνευση, όταν δεν υπάρχουν τέτοιες δηλώσεις που εμφανίζονται στην επιλογή που θέλετε.

Πρόβλημα 3

Συμπτώματα

Μια TextBlock υποδομή παρουσίασης των Windows (WPF) ενδέχεται να μην εμφανίζεται ένας ή περισσότεροι χαρακτήρες στο τέλος του κειμένου. Αυτό το ζήτημα παρουσιάζεται όταν ισχύουν οι ακόλουθες συνθήκες:

  • TextWrapping ή TextTrimming είναι ενεργοποιημένη.

  • Αναπλήρωση είναι μη μηδενικού ελικοειδούς γεμίσματος ή TextFormattingMode είναι "Οθόνη".

  • Πλάτος δεν έχει οριστεί ή έχει οριστεί σε "Αυτόματη".

  • Το FontFamily, FontSize και συγκεκριμένους χαρακτήρες στο κείμενο να οδηγήσει σε ένα πλάτος unfavorable.

CauseΑυτό το ζήτημα παρουσιάζεται λόγω αριθμητικού ανακρίβειες (ένα στρογγυλοποίηση σφάλμα), που μπορεί να προκύψουν κατά τη χρήση του πλάτους του κειμένου, μετατρέποντας το πλάτος μεταξύ εσωτερικής συστήματα συντεταγμένων, λογιστική για αναπλήρωση και στοίχιση του κειμένου σε pixel όρια για λειτουργία εμφάνισης.Προστασία από τέτοιου είδους ανακρίβειες έχει προστεθεί το υπολογισμούς, για να βεβαιωθείτε ότι θα εμφανίζονται όλοι οι χαρακτήρες που πρέπει να εμφανίζεται.

Το ζήτημα 4

Καρφίτσωμα αντικείμενα μπορεί να προκαλέσει υπερβολική κατακερματισμός μνήμης heap, προκαλεί μείωση των επιδόσεων. Αυτή η επιδιόρθωση παρέχει πιο αποτελεσματική επαναχρησιμοποίηση των buffer μνήμης, που να ελαχιστοποιείται ο κατακερματισμός μνήμης heap.

Το ζήτημα 5

Μερικές φορές, μια εφαρμογή μπορεί να αντιμετωπίσετε μια εξαίρεση παραβίαση πρόσβασης κατά τη διάρκεια του AppDomain τερματιστεί μετά από ένα φόντο λειτουργία συλλογής απορριμμάτων.

Το ζήτημα 6

Τα διαγνωστικά εργαλεία που κάνουν IL των οργάνων με τη χρήση του API δημιουργίας προφίλ μπορεί να προκαλέσει την ακόλουθη εξαίρεση που δεν αντιμετωπίστηκε για να δημιουργήθηκε από το κοινό χρόνο εκτέλεσης γλώσσας (CLR):

0X80131401 "= SECURITY_E_INCOMPATIBLE_SHARE. Φόρτωση αυτής της συγκρότησης θα παράγει διαφορετικό σύνολο από άλλες εμφανίσεις εκχώρησης.

Επιπλέον, η διαδικασία διακόπτεται. Αυτό το ζήτημα προκύπτει μόνο όταν χρησιμοποιείτε τα εργαλεία διάγνωσης.

Το ζήτημα 7

Όταν χρησιμοποιείτε το σημείο επεκτασιμότητας HttpMessageHandler υποδομή επικοινωνίας των Windows (WCF) 4.5 (γνωστό και ως διοχέτευση HTTP WCF), επικεφαλίδα WWW-Authenticate δεν μπορεί να οριστεί σε HttpRequestMessage ή HttpResponseMessage. Αυτό συμβαίνει επειδή το νέο σημείο επεκτασιμότητας HttpMessageHandler χρησιμοποιεί ένα διαφορετικό μηχανισμό για το χειρισμό των κεφαλίδων.Μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, οι δύο μηχανισμοί για να προσθέσετε κεφαλίδες φέρονται σε ισοτιμίας και πρέπει να μπορείτε να προσθέσετε ξανά κεφαλίδες WWW-Authenticate.

Το ζήτημα 8

Ένα NullReferenceException εξαίρεση από τη μέθοδο SqlInternalConnectionTds.BreakConnection . Αυτή η επείγουσα επιδιόρθωση επιλύει το ζήτημα χρονισμού που οδηγεί σε εξαίρεση NullReferenceException .

Το ζήτημα 9

ΣυμπτώματαΑς υποθέσουμε ότι έχετε μια εφαρμογή WCF που χρησιμοποιεί την κλάση BinaryMessageEncoder και ο κωδικοποιητής χρησιμοποιεί μια εγγραφή κειμένου UTF-8 με βάση ανά [MC-NBFX]. Εναλλακτικά, ας υποθέσουμε ότι έχετε μια εφαρμογή WCF που χρησιμοποιεί τη μέθοδο System.ServiceModel.Channels.Message.CreateBufferedCopy . Επεξεργασία ενός μηνύματος που περιέχει χαρακτήρες κυμαίνεται από U + 10000 σε U + 10FFFF (συμπεριλαμβανομένου) που αντιπροσωπεύονται στην UTF-8 ως ακολουθία 4 byte. Σε αυτήν την περίπτωση, το κωδικοποιημένο δυαδικό μήνυμα ενδέχεται να χαθούν και λαμβάνετε το ακόλουθο μήνυμα λάθους:System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderExceptionFallback'.Parameter name: charsat 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() Όταν παρουσιαστεί αυτό το ζήτημα, ο υπολογιστής-πελάτης χρονικό όριο χωρίς απάντηση εάν η εφαρμογή WCF είναι αυτο-φιλοξενούμενο. Εάν η εφαρμογή WCF είναι ενημερωτικά (ASP.NET), ο υπολογιστής-πελάτης θα λάβετε ένα σφάλμα διακομιστή 500.

Αιτία

Αυτό το ζήτημα παρουσιάζεται εξαιτίας μιας λεπτομερειών εσωτερική εφαρμογή που εκχωρεί ορισμένες φορές δεν επαρκεί ο χώρος, όταν αποκωδικοποιούνται ακολουθίες χαρακτήρων UTF-8 4-byte.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, εφαρμόστε την επείγουσα επιδιόρθωση. Μετά την εφαρμογή της επείγουσας επιδιόρθωσης, η εφαρμογή WCF θα περιμένει για την επόμενηΜέθοδος ανάγνωσης να αποκωδικοποιήσει τους χαρακτήρες, εάν δεν υπάρχει αρκετός διαθέσιμος χώρος στο buffer εξόδου για την αποκωδικοποίηση χαρακτήρες πολλών byte Unicode.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.