Αυτό το άρθρο περιγράφει τη συνάθροιση άμεσων επιδιορθώσεων 3088956 που είναι διαθέσιμη για το Microsoft .NET Framework 4.6. Για περισσότερες πληροφορίες σχετικά με τα προβλήματα που διορθώνει η συνάθροιση άμεσων επιδιορθώσεων, ανατρέξτε στην ενότητα "Προβλήματα που επιδιορθώνει αυτή η συνάθροιση άμεσων επιδιορθώσεων".
Επίλυση
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται να διορθώσει μόνο το πρόβλημα που περιγράφει αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα.Για να διορθώσετε αυτό το πρόβλημα, επικοινωνήστε με τις Υπηρεσίες υποστήριξης πελατών της Microsoft για να λάβετε την άμεση επιδιόρθωση. Για μια πλήρη λίστα των αριθμών τηλεφώνου των Υπηρεσιών υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφτείτε την ακόλουθη τοποθεσία web της Microsoft:
http://support.microsoft.com/contactus/?ws=supportΣημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που επιβάλλονται συνήθως για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, αν ένας Επαγγελματίας υποστήριξης της Microsoft διαπιστώσει ότι μια συγκεκριμένη ενημέρωση θα επιλύσει το πρόβλημά σας. Το συνηθισμένο κόστος υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις και ζητήματα υποστήριξης που δεν πληρούν τις προϋποθέσεις για τη συγκεκριμένη ενημέρωση.
Περισσότερες πληροφορίες
Προϋποθέσεις
Για να εφαρμόσετε αυτή την άμεση επιδιόρθωση, πρέπει να έχετε εγκατεστημένο το .NET Framework 4.6.
Απαίτηση επανεκκίνησης
Πρέπει να επανεκκινήσετε τον υπολογιστή μετά την εφαρμογή αυτής της άμεσης επιδιόρθωσης, εάν χρησιμοποιούνται αρχεία που επηρεάζονται. Συνιστάται να κλείσετε όλες τις εφαρμογές που βασίζονται σε .NET Framework πριν από την εφαρμογή αυτής της άμεσης επιδιόρθωσης.
Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης
Αυτό το πακέτο άμεσης επιδιόρθωσης δεν αντικαθιστά ένα πακέτο άμεσης επιδιόρθωσης που είχε κυκλοφορήσει προηγουμένως.
Προβλήματα που επιδιορθώνει αυτή η συνάθροιση άμεσων επιδιορθώσεων
Πρόβλημα 1Εάν έχετε μια τοποθεσία Web ASP.NET που εκτελείται σε μια έκδοση 32 bit των .NET Framework 4.6 ή AMD64 της πλατφόρμας .NET Framework 4.6 με απενεργοποιημένο το RyuJit, ενδέχεται να αντιμετωπίσετε σφάλμα w3wp λόγω ανεπίλυτου ThreadAbortException. Όταν συμβεί το σφάλμα, μπορείτε να δείτε το ακόλουθο αρχείο καταγραφής στο αρχείο καταγραφής συμβάντων των Windows:
Παρουσιάστηκε μια ανεπίλυτη εξαίρεση και η διαδικασία τερματίστηκε.Αναγνωριστικό εφαρμογής: [ApplicationID]Αναγνωριστικό διεργασίας: [ProcessID]Εξαίρεση: System.Threading.ThreadAbortExceptionΜήνυμα: Το νήμα ματαιωνόταν.StackTrace: στη διεύθυνση System.Web.httpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)στο System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
Πρόβλημα 2Ας υποθέσουμε ότι έχετε ένα πρόγραμμα-πελάτη WCF που συνδέεται με την υπηρεσία WCF χρησιμοποιώντας την υπηρεσία δρομολόγησης WCF. Εάν η τελική υπηρεσία προκαλέσει μη αναμενόμενη εξαίρεση που δεν είναι τύπος FaultException ή των παραμέτρων αλλαγών, η υπηρεσία δρομολόγησης WCF ενδέχεται να μην δρομολογεί τις επόμενες αιτήσεις προς την υπηρεσία τερματισμού.Όταν παρουσιάζεται αυτό το πρόβλημα, λαμβάνετε την ακόλουθη εξαίρεση:
System.ServiceModel.ProtocolException: Αυτό το κανάλι δεν μπορεί πλέον να χρησιμοποιηθεί για την αποστολή μηνυμάτων, καθώς η περίοδος λειτουργίας εξόδου έκλεισε αυτόματα λόγω τερματισμού λειτουργίας που ξεκίνησε από το διακομιστή. Απενεργοποιήστε το αυτόματο κλείσιμο ρυθμίζοντας το DispatchRuntime.AutomaticInputSessionShutdown σε false ή εξετάστε το ενδεχόμενο να τροποποιήσετε το πρωτόκολλο τερματισμού λειτουργίας με τον απομακρυσμένο διακομιστή.
Πληροφορίες ανίχνευσης στοίβας:στο System.ServiceModel.Channels.ServiceChannel.PrepareCall(Λειτουργία ProxyOperationRuntime, Boolean oneway, ProxyRpc& rpc)at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()at System.ServiceModel.Channels.ServiceChannel.BeginCall(Ενέργεια συμβολοσειράς, Δυαδική τιμή oneway, λειτουργία ProxyOperationRuntime, Αντικείμενο[] ins, χρονικό όριο χρονικού ορίου χρονικού ορίου TimeSpan, επιστροφή κλήσης AsyncCallback, Object asyncState)at System.ServiceModel.Channels.ServiceChannelProxy.InvokeBeginService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)at System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, Object state)στη διεύθυνση System.ServiceModel.Routing.ClientFactory.RequestReplyClient.OnBeginOperation(Μήνυμα, Επιστροφή κλήσης AsyncCallback, κατάσταση αντικειμένου)στη διεύθυνση System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult.CallOperation()στο System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult.. ctor(RoutingClientBase'1 parent, Αίτηση μηνύματοςMessage, συναλλαγή συναλλαγής, επιστροφή κλήσης AsyncCallback, κατάσταση αντικειμένου)στη διεύθυνση System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.BeginOperation(μήνυμα μηνύματος, συναλλαγή συναλλαγής, επιστροφή κλήσης AsyncCallback, κατάσταση αντικειμένου)στη διεύθυνση System.ServiceModel.Routing.ProcessRequestAsyncResult'1.StartProcessing()at System.ServiceModel.Routing.ProcessRequestAsyncResult'1..ctor(RoutingService service, Message message, AsyncCallback callback, Κατάσταση αντικειμένου)στη διεύθυνση System.ServiceModel.Routing.RoutingService.BeginProcessRequest[TContract](Μήνυμα μηνύματος, Επιστροφή κλήσης AsyncCallback, Κατάσταση αντικειμένου)στη διεύθυνση System.ServiceModel.Routing.RoutingService.System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(μήνυμα μηνύματος, AsyncCallback callback, κατάσταση αντικειμένου)at AsyncInvokeBeginBeginProcessRequest(Object , Object[] , AsyncCallback, Object )at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeBegin(Παρουσία αντικειμένου, Εισαγωγή αντικειμένου[], Επιστροφή κλήσης AsyncCallback, Κατάσταση αντικειμένου) Πρόβλημα 3Αυτή είναι μια ενημέρωση για την υποστήριξη του νέου συμβόλου Lari της Γεωργίας. Η χώρα της Γεωργίας εισήγαγε ένα νέο σύμβολο νομίσματος για το Lari, αλλά το όνομα του νομίσματος δεν αλλάζει. Το νέο σύμβολο νομισματικής μονάδας έχει επίσης προστεθεί στο πρότυπο Unicode. Αυτή η ενημέρωση εξασφαλίζει ότι εμφανίζεται το σωστό σύμβολο νομισματικής μονάδας από το .NET Framework με βάση τις τοπικές ρυθμίσεις συστήματος.Πρόβλημα 4Εάν μια συλλογή Gen2 παρουσιάζεται κατά τη διάρκεια κλήσεων Parallel.ForEach, ενδέχεται να αντιμετωπίσετε μεγάλες παύσεις ανταπόκρισης μετά την εγκατάσταση του Visual Studio 2015 ή του .NET Framework 4.6 χωρίς το Visual Studio.Επίλυση:Αυτή η ενημέρωση ενημερώνει τον συλλέκτη απορριμάτων επιλύοντας το πάγωμα του συστήματος που προκαλείται από αυτό το πρόβλημα.Πρόβλημα 5Μετά την εγκατάσταση του .NET Framework 4.6, οι μέθοδοι DateTime.Parse και Date.TryParse δεν λειτουργούν σωστά. Αυτό το πρόβλημα μπορεί να παρουσιαστεί με τις ακόλουθες ρυθμίσεις κουλτούρας:
-
fi-FI
-
nb-NO
-
nb-SJ
-
sr-Cyrl-XK
-
sr-Latn-ME
-
sr-Latn-RS
-
sr-Latn-XK
Ανάλυση:Αυτή η ενημέρωση επιτρέπει στα dateTime.Parse και Date.TryParse να λειτουργούν σωστά σε κουλτούρες που χρησιμοποιούν το ίδιο διαχωριστικό ημερομηνίας και ώρας.Πρόβλημα 6Μετά την εγκατάσταση του .NET Framework 4.6, το .NET Framework 4.6 χρησιμοποιεί ένα νέο πρόγραμμα μεταγλώττισης 64 bit που ονομάζεται RyuJIT. Σε ορισμένες περιπτώσεις, το νέο πρόγραμμα μεταγλώττισης δημιουργεί εσφαλμένο κώδικα που προκαλεί απρόβλεπτη συμπεριφορά ή σφάλματα. Επίλυση:Αυτή η ενημέρωση διορθώνει πολλά προβλήματα στο πρόγραμμα μεταγλώττισης RyuJIT. Αν η εφαρμογή εξακολουθεί να συμπεριφέρεται απρόβλεπτα μετά την εγκατάσταση αυτής της ενημέρωσης, ανατρέξτε στις πρόσθετες λεπτομερείς οδηγίες αντιμετώπισης προβλημάτων.Περαιτέρω βήματα:Εάν διαπιστωθεί ότι το πρόβλημα μπορεί να σχετίζεται με το RyuJIT, ακολουθώντας τα βήματα αντιμετώπισης προβλημάτων στη σύνδεση, καταγράψτε το πρόβλημα στο http://connect.microsoft.com. Συμπεριλάβετε όσο το δυνατόν περισσότερες λεπτομέρειες στην αναφορά και επίσης κώδικα για την αναπαραγωγή του προβλήματος.