Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Εκτελείτε μια εφαρμογή του Microsoft .NET Framework 3.5 Service Pack 1 (SP1) που βασίζεται σε Windows Presentation Foundation (WPF).
-
Η εφαρμογή WPF χρησιμοποιεί τη διοχέτευση απόδοσης υλικού.
-
Η εφαρμογή φορτώνει και ξεφορτώνει πολλούς τομείς εφαρμογών που περιέχουν ένα ή περισσότερα προσαρμοσμένα στοιχεία προσθέτων WPF.
Σε αυτό το σενάριο, η εφαρμογή συναντά μια εξαίρεση System.Runtime.InteropServices.COMException και, στη συνέχεια, η εφαρμογή παρουσιάζει σφάλμα.
Επίλυση
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η άμεση επιδιόρθωση προορίζεται να διορθώσει μόνο το πρόβλημα που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε αυτήν την άμεση επιδιόρθωση μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα. Αυτή η άμεση επιδιόρθωση ενδέχεται να λάβει πρόσθετες δοκιμές. Επομένως, εάν δεν επηρεάζεστε σοβαρά από αυτό το πρόβλημα, συνιστάται να περιμένετε για την επόμενη ενημέρωση λογισμικού που περιέχει αυτήν την άμεση επιδιόρθωση. Για να κάνετε λήψη αυτής της άμεσης επιδιόρθωσης από τη Συλλογή κώδικα MSDN, επισκεφθείτε την ακόλουθη τοποθεσία Web της Microsoft:
http://code.msdn.microsoft.com/KB2276690Σημείωση Η συλλογή κωδικών MSDN εμφανίζει τις γλώσσες για τις οποίες είναι διαθέσιμη η άμεση επιδιόρθωση. Εάν δεν βλέπετε τη γλώσσα σας στη λίστα, αυτό συμβαίνει επειδή η σελίδα πόρων της Συλλογής κώδικα δεν είναι διαθέσιμη για τη συγκεκριμένη γλώσσα. Σημείωση Εάν προκύψουν πρόσθετα προβλήματα ή εάν απαιτείται κάποια αντιμετώπιση προβλημάτων, ίσως χρειαστεί να δημιουργήσετε ένα ξεχωριστό αίτημα εξυπηρέτησης. Το συνηθισμένο κόστος υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις και ζητήματα υποστήριξης που δεν πληρούν τις προϋποθέσεις για τη συγκεκριμένη άμεση επιδιόρθωση. Για μια πλήρη λίστα των αριθμών τηλεφώνου εξυπηρέτησης πελατών και υποστήριξης της Microsoft ή για να δημιουργήσετε ένα ξεχωριστό αίτημα εξυπηρέτησης, επισκεφτείτε την ακόλουθη τοποθεσία web της Microsoft:
http://support.microsoft.com/contactus/?ws=support
Προϋποθέσεις
Για να εφαρμόσετε αυτήν την άμεση επιδιόρθωση, πρέπει να έχετε εγκατεστημένο το .NET Framework 3.5 Service Pack 1 (SP1).
Απαίτηση επανεκκίνησης
Δεν χρειάζεται να επανεκκινήσετε τον υπολογιστή μετά την εφαρμογή αυτής της άμεσης επιδιόρθωσης.
Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης
Αυτή η άμεση επιδιόρθωση δεν αντικαθιστά οποιαδήποτε άλλη άμεση επιδιόρθωση.
Πληροφορίες αρχείων
Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για αυτά τα αρχεία παρατίθενται στη Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, αυτές μετατρέπονται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ UTC και τοπικής ώρας, χρησιμοποιήστε την καρτέλα Ζώνη ώρας στο στοιχείο Ημερομηνία και Ώρα στον Πίνακα Ελέγχου.
Για όλες τις υποστηριζόμενες εκδόσεις του Windows Server 2003 και των Windows XP που βασίζονται σε x86
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
02-Σεπ-2010 |
01:32 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
02-Σεπ-2010 |
01:28 |
x86 |
|
Presentationhost.exe |
4.0.40305.0 |
295,264 |
02-Σεπ-2010 |
01:28 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
02-Σεπ-2010 |
01:32 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
02-Σεπ-2010 |
01:32 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
02-Σεπ-2010 |
01:32 |
x86 |
Για όλες τις υποστηριζόμενες εκδόσεις του Windows Server 2003 και των Windows XP που βασίζονται σε x64
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
02-Σεπ-2010 |
00:53 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
02-Σεπ-2010 |
00:48 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
02-Σεπ-2010 |
00:48 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
02-Σεπ-2010 |
00:53 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
02-Σεπ-2010 |
00:53 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
02-Σεπ-2010 |
00:53 |
x64 |
Για όλες τις υποστηριζόμενες εκδόσεις x86 του Windows Vista Service Pack 2 (SP2) και του Windows Server 2008 Service Pack 2 (SP2)
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
09-Σεπ-2010 |
10:52 |
x86 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
03-Απρ-2009 |
21:25 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
1,736,024 |
17-Ιουν-2009 |
08:03 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
09-Σεπ-2010 |
10:52 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
09-Σεπ-2010 |
10:52 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
09-Σεπ-2010 |
10:52 |
x86 |
Για όλες τις υποστηριζόμενες εκδόσεις x64 των Windows Vista SP2 και του Windows Server 2008 SP2
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
09-Σεπ-2010 |
10:52 |
x64 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
03-Απρ-2009 |
20:58 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
2,254,168 |
17-Ιουν-2009 |
08:03 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
09-Σεπ-2010 |
10:52 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
09-Σεπ-2010 |
10:52 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
09-Σεπ-2010 |
10:52 |
x64 |
Για όλες τις υποστηριζόμενες εκδόσεις των Windows 7 που βασίζονται σε x86
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
4,218,880 |
11-Σεπ-2010 |
01:29 |
x86 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
10-Ιουν-2009 |
21:14 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
1,736,536 |
10-Ιουν-2009 |
21:14 |
x86 |
|
Presentationframework.dll |
3.0.6920.5012 |
5,279,744 |
11-Σεπ-2010 |
01:29 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
130,408 |
11-Σεπ-2010 |
01:29 |
x86 |
|
Presentationhost.exe |
4.0.31106.0 |
295,264 |
11-Σεπ-2010 |
01:29 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
11-Σεπ-2010 |
01:29 |
x86 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,253,376 |
11-Σεπ-2010 |
01:29 |
x86 |
Για όλες τις υποστηριζόμενες εκδόσεις των Windows 7 και του Windows Server 2008 R2 που βασίζονται σε x64
|
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
3,997,696 |
11-Σεπ-2010 |
01:28 |
x64 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
10-Ιουν-2009 |
20:30 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
2,255,176 |
10-Ιουν-2009 |
20:30 |
x64 |
|
Presentationframework.dll |
3.0.6920.5012 |
4,636,672 |
11-Σεπ-2010 |
01:28 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
171,368 |
11-Σεπ-2010 |
01:28 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
11-Σεπ-2010 |
01:28 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
11-Σεπ-2010 |
01:28 |
x64 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,114,112 |
11-Σεπ-2010 |
01:28 |
x64 |
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".
Λύση
Για να επιλύσετε αυτό το πρόβλημα, απενεργοποιήστε τη διοχέτευση απόδοσης υλικού και, στη συνέχεια, ενεργοποιήστε τη διοχέτευση απόδοσης λογισμικού. Για να απενεργοποιήσετε τη διοχέτευση απόδοσης υλικού και να ενεργοποιήσετε τη διοχέτευση απόδοσης λογισμικού, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
-
Ορίστε την απαρίθμηση System.Windows.Interop.RenderMode.Ακολουθεί ένα παράδειγμα κώδικα που ορίζει την απαρίθμηση System.Windows.Interop.RenderMode για την ενεργοποίηση της διοχέτευσης απόδοσης λογισμικού κατά τη φόρτωση ενός παραθύρου WPF:
private void OnLoaded(object sender, EventArgs e){System.Windows.Interop.HwndSource hwndSource = PresentationSource.FromVisual(this) as System.Windows.Interop.HwndSource;System.Windows.Interop.HwndTarget hwndTarget = hwndSource.CompositionTarget; hwndTarget.RenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;}
-
Ορίστε το κλειδί μητρώου DisableHWAcceleration .Σημαντικό Αυτή η ενότητα, μέθοδος ή εργασία περιέχει βήματα που σας καθοδηγούν στον τρόπο τροποποίησης του μητρώου. Ωστόσο, ενδέχεται να προκύψουν σοβαρά προβλήματα σε περίπτωση λανθασμένης τροποποίησης του μητρώου. Γι' αυτό, βεβαιωθείτε ότι ακολουθείτε με προσοχή τα σχετικά βήματα. Για επιπλέον προστασία, δημιουργήστε αντίγραφο ασφαλείας του μητρώου, πριν να το τροποποιήσετε. Στη συνέχεια, εάν παρουσιαστεί πρόβλημα, μπορείτε να επαναφέρετε το μητρώο. Για περισσότερες πληροφορίες σχετικά με τον τρόπο δημιουργίας αντιγράφων ασφαλείας και τον τρόπο επαναφοράς του μητρώου, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης (Knowledge Base) της Microsoft:
322756 Τρόπος δημιουργίας αντιγράφων ασφαλείας και επαναφοράς του μητρώου στα WindowsΠροειδοποίηση Αυτή η μέθοδος απενεργοποιεί τη διοχέτευση απόδοσης υλικού για όλες τις εφαρμογές WPF στον υπολογιστή. Επομένως, η μέθοδος δεν ενθαρρύνεται συνήθως εκτός από όταν οι πελάτες ελέγχουν τα περιβάλλοντα και δεν έχουν υπόψη την επίδραση για όλες τις εφαρμογές WPF.
-
Κάντε κλικ στο κουμπί Έναρξη, επιλέξτεΕκτέλεση, πληκτρολογήστε regedit και, στη συνέχεια, πατήστε το πλήκτρο ENTER.
-
Εντοπίστε και, στη συνέχεια, κάντε κλικ στο ακόλουθο δευτερεύον κλειδί μητρώου:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics
-
Ορίστε την τιμή της καταχώρησης μητρώου DisableHWAcceleration σε 1.Σημείωση Εάν η καταχώρηση μητρώου DisableHWAcceleration δεν υπάρχει, κάντε δεξί κλικ στο δευτερεύον κλειδί μητρώου, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Δημιουργία και, στη συνέχεια, κάντε κλικ στην επιλογή Τιμή συμβολοσειράς για να δημιουργήσετε μια νέα καταχώρηση μητρώου. Πληκτρολογήστε DisableHWAcceleration για το όνομα της νέας καταχώρησης μητρώου, κάντε διπλό κλικ στην επιλογή DisableHWAcceleration και, στη συνέχεια, αλλάξτε τα δεδομένα τιμής DisableHWAcceleration σε 1.
-
Κλείστε τον Επεξεργαστή Μητρώου.
-
Περισσότερες πληροφορίες
Για περισσότερες πληροφορίες σχετικά με τη διοχέτευση απόδοσης λογισμικού, επισκεφθείτε την ακόλουθη τοποθεσία web Microsoft Developer Network (MSDN):Γενικές πληροφορίες σχετικά με τη διοχέτευσηαπόδοσης λογισμικού Για περισσότερες πληροφορίες σχετικά με τις ρυθμίσεις μητρώου απόδοσης WPF, επισκεφθείτε την ακόλουθη τοποθεσία web του MSDN:Γενικές πληροφορίες σχετικά με τις ρυθμίσεις μητρώου απόδοσης WPFΓια περισσότερες πληροφορίες σχετικά με την απαρίθμηση System.Windows.Interop.RenderMode, επισκεφθείτε την ακόλουθη τοποθεσία web του MSDN:Γενικές πληροφορίες σχετικά με την απαρίθμηση "System.Windows.Interop.RenderMode"