Simptome
Luați în considerare următorul scenariu:
-
Rulați o aplicație Microsoft .NET Framework 3.5 Service Pack 1 (SP1) bazată pe Windows Presentation Foundation (WPF).
-
Aplicația WPF utilizează canalul de redare hardware.
-
Aplicația încarcă și descarcă multe domenii de aplicație care conțin una sau mai multe componente de program de completare WPF particularizate.
În acest scenariu, aplicația întâlnește o excepție System.Runtime.InteropServices.COMException, apoi aplicația se defectează.
Rezolvare
Informații despre remedierea rapidă
O remediere rapidă acceptată este disponibilă de la Microsoft. Totuși, această remediere rapidă este destinată să corecteze doar problema descrisă în acest articol. Aplicați această remediere rapidă doar la sistemele care se confruntă cu această problemă specifică. Este posibil ca această remediere rapidă să primească testări suplimentare. Prin urmare, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următoarea actualizare de software care conține această remediere rapidă. Pentru a descărca această remediere rapidă din Galeria de coduri MSDN, vizitați următorul site web Microsoft:
http://code.msdn.microsoft.com/KB2276690Notă Galeria de coduri MSDN afișează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs. listată, cauza este faptul că pagina de resurse Galerie de cod nu este disponibilă pentru limba respectivă. Notă Dacă apar probleme suplimentare sau dacă este necesară o depanare, poate fi necesar să creați o solicitare de serviciu separată. Costurile uzuale de asistență se vor aplica la întrebări și probleme suplimentare de asistență care nu se califică pentru această remediere rapidă specifică. Pentru o listă completă a numerelor de telefon ale Serviciului pentru clienți și asistență Microsoft sau pentru a crea o solicitare de serviciu separată, vizitați următorul site web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Cerinţe preliminare
Pentru a aplica această remediere rapidă, trebuie să aveți instalat .NET Framework 3.5 Service Pack 1 (SP1).
Cerință repornire
Nu trebuie să reporniți computerul după ce aplicați această remediere rapidă.
Informații despre înlocuirea remedierii rapide
Această remediere rapidă nu înlocuiește nicio altă remediere rapidă.
Informații fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fișier (sau atributele de fișier mai recente) care sunt listate în tabelul următor. Datele și orele pentru aceste fișiere sunt listate în Timpul universal (UTC). Când vizualizați informațiile despre fișier, acestea sunt convertite la ora locală. Pentru a găsi diferența dintre UTC și ora locală, utilizați fila Fus orar din elementul Dată și oră din Panoul de control.
Pentru toate versiunile de Windows Server 2003 și de Windows XP acceptate bazate pe x86
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
02 septembrie 2010 |
01:32 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
02 septembrie 2010 |
01:28 |
x86 |
|
Presentationhost.exe |
4.0.40305.0 |
295,264 |
02 septembrie 2010 |
01:28 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
02 septembrie 2010 |
01:32 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
02 septembrie 2010 |
01:32 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
02 septembrie 2010 |
01:32 |
x86 |
Pentru toate versiunile de Windows Server 2003 și de Windows XP acceptate bazate pe x64
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
02 septembrie 2010 |
00:53 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
02 septembrie 2010 |
00:48 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
02 septembrie 2010 |
00:48 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
02 septembrie 2010 |
00:53 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
02 septembrie 2010 |
00:53 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
02 septembrie 2010 |
00:53 |
x64 |
Pentru toate versiunile bazate pe x86 de Windows Vista Service Pack 2 (SP2) și Windows Server 2008 Service Pack 2 (SP2)
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
09-septembrie 2010 |
10:52 |
x86 |
|
Presentationfontcache.exe.config |
Inaplicabil |
161 |
03-Apr.-2009 |
21:25 |
Inaplicabil |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
1,736,024 |
17-Iun-2009 |
08:03 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
09-septembrie 2010 |
10:52 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
09-septembrie 2010 |
10:52 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
09-septembrie 2010 |
10:52 |
x86 |
Pentru toate versiunile de Windows Vista SP2 și de Windows Server 2008 SP2 acceptate pe 64 de biți
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
09-septembrie 2010 |
10:52 |
x64 |
|
Presentationfontcache.exe.config |
Inaplicabil |
161 |
03-Apr.-2009 |
20:58 |
Inaplicabil |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
2,254,168 |
17-Iun-2009 |
08:03 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
09-septembrie 2010 |
10:52 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
09-septembrie 2010 |
10:52 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
09-septembrie 2010 |
10:52 |
x64 |
Pentru toate versiunile de Windows 7 acceptate bazate pe x86
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
4,218,880 |
11 septembrie 2010 |
01:29 |
x86 |
|
Presentationfontcache.exe.config |
Inaplicabil |
161 |
10-Iun-2009 |
21:14 |
Inaplicabil |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
1,736,536 |
10-Iun-2009 |
21:14 |
x86 |
|
Presentationframework.dll |
3.0.6920.5012 |
5,279,744 |
11 septembrie 2010 |
01:29 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
130,408 |
11 septembrie 2010 |
01:29 |
x86 |
|
Presentationhost.exe |
4.0.31106.0 |
295,264 |
11 septembrie 2010 |
01:29 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
11 septembrie 2010 |
01:29 |
x86 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,253,376 |
11 septembrie 2010 |
01:29 |
x86 |
Pentru toate versiunile de Windows 7 și de Windows Server 2008 R2 acceptate bazate pe x64
|
Nume fișier |
Versiune fișier |
Dimensiune fișier |
Dată |
Oră |
Peron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
3,997,696 |
11 septembrie 2010 |
01:28 |
x64 |
|
Presentationfontcache.exe.config |
Inaplicabil |
161 |
10-Iun-2009 |
20:30 |
Inaplicabil |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
2,255,176 |
10-Iun-2009 |
20:30 |
x64 |
|
Presentationframework.dll |
3.0.6920.5012 |
4,636,672 |
11 septembrie 2010 |
01:28 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
171,368 |
11 septembrie 2010 |
01:28 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
11 septembrie 2010 |
01:28 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
11 septembrie 2010 |
01:28 |
x64 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,114,112 |
11 septembrie 2010 |
01:28 |
x64 |
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Soluție de evitare
Pentru a rezolva această problemă, dezactivați canalul de redare hardware, apoi activați canalul de redare a software-ului. Pentru a dezactiva canalul de redare hardware și pentru a activa canalul de redare a software-ului, utilizați una dintre următoarele metode:
-
Setați enumerarea System.Windows.Interop.RenderMode.Iată un exemplu de cod care setează enumerarea System.Windows.Interop.RenderMode pentru a activa canalul de redare a software-ului atunci când este încărcată o fereastră 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;}
-
Setați cheia de registry DisableHWAcceleration .Important Această secțiune, metodă sau activitate conține pași care vă spun cum să modificați registry. Totuși, dacă modificați incorect sistemul registry, pot apărea probleme serioase. De aceea, asiguraţi-vă că urmaţi aceşti paşi cu atenţie. Pentru o protecție mai bună, înainte de a face modificări, realizați o copie de rezervă a sistemului registry. După aceea, sistemul registry poate fi restaurat dacă apare o problemă. Pentru informații suplimentare despre copierea de rezervă și restaurarea sistemului registry, faceți clic pe următorul număr de articol din Baza de cunoștințe Microsoft:
322756 Cum se face backup și se restaurează registry în WindowsAvertisment Această metodă dezactivează canalul de redare hardware pentru toate aplicațiile WPF de pe computer. Prin urmare, metoda nu este încurajată, de obicei, cu excepția cazului în care clienții controlează mediile și nu deranjează efectul pentru toate aplicațiile WPF.
-
Faceți clic pe Start, pe Executare, tastați regedit, apoi apăsați ENTER.
-
Identificați următoarea subcheie de registry și apoi faceți clic pe ea:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics
-
Setați valoarea intrării de registry DisableHWAcceleration la 1.Notă Dacă intrarea de registry DisableHWAcceleration nu există, faceți clic dreapta pe subcheia de registry, indicați spre Nou, apoi faceți clic pe Valoare șir pentru a crea o nouă intrare de registry. Tastați DisableHWAcceleration pentru numele noii intrări de registry, faceți dublu clic pe DisableHWAcceleration, apoi modificați datele valorii DisableHWAcceleration la 1.
-
Închideți Registry Editor.
-
Mai multe informații
Pentru mai multe informații despre canalul de redare a software-ului, vizitați următorul site web Microsoft Developer Network (MSDN):Informații generale despre canalulde redare a software-ului Pentru mai multe informații despre setările de registry ale redării WPF, vizitați următorul site web MSDN:Informații generale despre setările de registry ale redării WPFPentru mai multe informații despre enumerarea System.Windows.Interop.RenderMode, vizitați următorul site web MSDN:Informații generale despre enumerarea "System.Windows.Interop.RenderMode"