Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με τη Microsoft
Εισέλθετε ή δημιουργήστε ένα λογαριασμό.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε το λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Εισαγωγή

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

Αυτή η επείγουσα επιδιόρθωση, τη συλλογή ενημερωμένων εκδόσεων είναι διαθέσιμη για τα ακόλουθα λειτουργικά συστήματα:

  • Τα Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Τα Windows Server 2008 SP2

  • Windows Vista SP2


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

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

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

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

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

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

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

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

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

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

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


















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

Πρόβλημα 1

Αυτή η επείγουσα επιδιόρθωση επιλύει τα ακόλουθα ζητήματα δύο νημάτων System.IO.Packaging όταν χρησιμοποιείτε το 4.5 του .NET Framework, .NET Framework 4.5.1 ή το .NET Framework 4.5.2.

  • Αδιέξοδη κατάσταση μπορεί να προκύψει όταν χρησιμοποιείτε μεγάλα πακέτα σε ξεχωριστά νήματα. System.IO.Packaging χρησιμοποιεί IsolatedStorage για τα πακέτα που είναι μεγαλύτερα από 10 megabyte (MB). Όταν δύο ή περισσότερα νήματα χρησιμοποιούν μεγάλα πακέτα, ενδέχεται να παρουσιαστεί αδιέξοδη κατάσταση, ακόμη και αν τα πακέτα είναι ανεξάρτητες. Η αδιέξοδη κατάσταση περιλαμβάνει δύο νημάτων. Ένα είναι σε αναμονή στο IsolatedStorageFile.Lock ενώ το άλλο περιμένει σε μια άλλη μέθοδος της κλάσης IsoloatedStorageFile . Αυτό το ζήτημα διορθώνεται, προσθέτοντας συγχρονισμού System.IO.Packaging για να αποφύγετε το σφάλμα στο IsolatedStorageFile.

  • Εξαιρέσεις ενδέχεται να παρουσιαστεί κατά την ανάκτηση PackageProperties από τα πακέτα που έχουν ανοιχτεί σε ξεχωριστά νήματα, ακόμη και αν τα πακέτα είναι ανεξάρτητες. Οι πιο συνηθισμένες στοίβες που προκύπτουν από αυτό είναι οι εξής:System.Xml.XmlException: Unrecognized root element in Core Properties part. Line 2, position 2. atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at
    System.IO.Packaging.Package.get_PackageProperties()
    System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: id atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at
    System.IO.Packaging.Package.get_PackageProperties()
    Αυτό το ζήτημα προκαλείται από διένεξη σε κοινόχρηστο πόρο εσωτερικό και επιλύεται, δίνοντας σε κάθε πακέτο ένα αντίγραφο αυτού του πόρου.


Πρόβλημα 2

Μια εφαρμογή των Windows παρουσίαση Foundation (WPF) ενδέχεται να χρησιμοποιούν μια μεγάλη ποσότητα μνήμης, όταν λαμβάνει πολλές αιτήσεις για την υπηρεσία UIAutomation . Η μνήμη που ανήκει στα αντικείμενα που προέρχονται από το χώρο ονομάτων System.Threading . Αυτό περιλαμβάνει, System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timerκαι πολλές άλλες σχετικές κλάσεις.

Αυτά είναι τα αντικείμενα που έχουν εκχωρηθεί για λογαριασμό WPF όταν WPF λαμβάνει μια αίτηση για τη δραστηριότητα UIAutomation . Τελικά, θα είναι διαθέσιμες μέχρι τη λήξη της προθεσμίας λήξης χρονικού ορίου για την αίτηση (συνήθως τρία λεπτά). Εάν οι αιτήσεις φτάνουν γρήγορα, η εφαρμογή φαίνεται να έχει "διαρροή" μνήμης ή χρησιμοποιεί περισσότερη μνήμη από τι είναι εύλογο (τόσο, όση είναι 500 MB).

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

Πρόβλημα 3

Σε μια εφαρμογή WPF, κατά την εισαγωγή κειμένου χρησιμοποιώντας το κορεατικό Input Method Editor (IME), στην ιδιότητα Text της ένα επεξεργάσιμο σύνθετο πλαίσιο δεν αλλάζει σωστά σε ορισμένες περιπτώσεις.

Αυτό το ζήτημα ενδέχεται να παρουσιάσουν διαφορετικά συμπτώματα και αυτό εξαρτάται από τον τρόπο εφαρμογής (ή ο συντάκτης του στοιχείου ελέγχου) έχει ρυθμίσει τις παραμέτρους του σύνθετου πλαισίου. Για παράδειγμα:

  • Αφού πληκτρολογήσετε και καρτέλα μακριά (ή μετακινείτε την εστίαση σε άλλο στοιχείο ελέγχου), επανέρχεται το εμφανιζόμενο κείμενο του σύνθετου πλαισίου , η κενή συμβολοσειρά ή την τιμή που είχε πριν από την πληκτρολόγηση.

  • Η δυνατότητα TextSearch του σύνθετου πλαισίου συμπεριφέρεται σωστά. Δεν ταιριάζει με το πρόθεμα που έχει εισαχθεί ή να ταιριάζει με ένα στοιχείο που δεν έχουν σχέση.

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

Το ζήτημα 4

Αφού χρησιμοποιήσετε μια αφής για να εκτελέσετε μια λειτουργία μεταφοράς και απόθεσης σε μια εφαρμογή WPF, την επόμενη κίνηση αφής λαμβάνεται υπόψη.

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

Το ζήτημα 5

Μια νέα υλοποίηση AuthenticationManager μπορούν να ενεργοποιηθούν προαιρετικά να αποκτήσει σημαντική απόδοση κατά την εργασία με προσαρμοσμένα IAuthenticationModules.

Σημείωση Μείζονες κινδύνους ασφαλείας εμφανίζονται αν ο κώδικας δεν έχει σχεδιαστεί να είναι ασφαλές για τα νήματα. Η αλλαγή κύριων συμπεριφορά βρίσκεται σχετικά με τις μεθόδους PreAuthenticate και Έλεγχος ταυτότητας . Προηγουμένως την είχε εγγυηθεί ότι ο κώδικας εκτέλεση σειριακά (λήψης ενός καθολικού κλειδώματος). Κατά την υλοποίηση νέων, λαμβάνεται χωρίς κλείδωμα και τον κωδικό του πελάτη, πρέπει να εγγυώνται την ασφάλεια νήματος.
Επιπλέον, με την νέα εφαρμογή, το μέγεθος της μνήμης cache PrefixLookup μπορεί να ελεγχθεί μέσω του μητρώου.

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

  • Καθολικές ρυθμίσεις[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001
    "System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000

  • Τοπική εφαρμογή ρύθμισης παραμέτρων[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.HighPerformance]"c:\myapp\myapp.exe"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.PrefixLookupMaxCount]
    "c:\myapp\myapp.exe"=dword:00010000

Καθολικές ρυθμίσεις έχουν προτεραιότητα έναντι των ρυθμίσεων τοπικής εφαρμογής. Εφαρμογή κύριας και τοπικές ρυθμίσεις μπορούν να αναμειχθούν. PrefixLookupMaxCount δεν θα επηρεαστούν, εάν έχει οριστεί η ρύθμιση HighPerformance καθολική ή τοπική εφαρμογή στην τιμή DWORD 1.

Το ζήτημα 6

Ας υποθέσουμε ότι εκτελείτε μια εφαρμογή που βασίζεται σε το 4.5 του .NET Framework, .NET Framework 4.5.1 ή το .NET Framework 4.5.2. Η εφαρμογή δημιουργεί μια εξαίρεση σε μια διαχειριζόμενη μέθοδο που κλήθηκε από τον τοπικό κώδικα και διαβιβάστηκε μιας διασύνδεσης COM από την αναφορά. Σε αυτήν την περίπτωση, η εφαρμογή μπορεί να διακοπεί.

Για παράδειγμα: μια εφαρμογή που είναι γραμμένη σε VB6 καλεί μια βιβλιοθήκη DLL C#. Εάν η εφαρμογή και DLL μεταγλωττίζονται σε λειτουργία έκδοσης, όταν παρουσιαστεί εξαίρεση στον κώδικα C#, παρουσιάζεται μια παραβίαση πρόσβασης και διακόπτεται η λειτουργία της εφαρμογής.

Το ζήτημα 7

Όταν τα έργα βάσει XAML ροή εργασίας λαμβάνουν περισσότερο χρόνο από τον προεπιλεγμένο χρόνο μίσθωσης (πέντε λεπτών) των απομακρυσμένων αντικειμένων που καθορίζονται από τις εργασίες για τη δημιουργία του XAML, λαμβάνετε ένα μήνυμα λάθους παρόμοιο με το ακόλουθο:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.XAML.targets(193,5): σφάλμα XC1000: XC1020: Παρουσιάστηκε σφάλμα Build στην εργασία XAML MSBuild: ' αντικείμενο ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' έχει αποσυνδεθεί ή δεν υπάρχει στο διακομιστή. "

Μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, μπορείτε να ορίσετε τις δικές σας χρόνος μίσθωσης (σε λεπτά), καθορίζοντας τη μεταβλητή περιβάλλοντος με το όνομα XamlBuildTaskRemotingLeaseLifetimeInMinutes.

Για να ορίσετε τη μεταβλητή περιβάλλοντος σε ένα αρχείο έργου MSBuild, πρέπει να περιλαμβάνουν τις ακόλουθες πληροφορίες στο αρχείο έργου:<Project ...> <UsingTask TaskName="MySetEnv" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
<ParameterGroup>
<Name Required="true" />
<Value Required="false" />
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">System.Environment.SetEnvironmentVariable(Name, Value);</Code>
</Task>
</UsingTask>
...
...
<Target Name="BeforeBuild">
<MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="1440" />
</Target>
<Target Name="AfterBuild">
<MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="" />
</Target>
</Project>
Το όνομα εργασίας σε αυτό το παράδειγμα είναι το MySetEnv. Μπορεί να οριστεί σε οποιαδήποτε συμβολοσειρά που ισχύει για τα ονόματα των εργασιών. Αυτό το παράδειγμα ορίζει το χρόνο μίσθωσης σε 1.440 λεπτά (μία ημέρα) πριν από τη δημιουργία του έργου και ορίζει στην τιμή null, μετά από το κτίριο. Εάν υπάρχουν πολλά έργα που απαιτούνται για την παράταση της μίσθωσης, κάθε έργο πρέπει αυτή η ρύθμιση παραμέτρων.

Το ζήτημα 8

Όταν χρησιμοποιείτε AJAX, καταχώρηση προς τα πίσω σε μια σελίδα, ορισμένες φορές η καταχώρηση προς τα πίσω ανακατευθύνεται σε μια άλλη διεύθυνση URL. Μπορείτε να αποκτήσετε το RedirectLocation σε μια HttpModule με HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

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

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Συμμετοχή στο Microsoft Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;

Σας ευχαριστούμε για τα σχόλιά σας!

×