Simptomi
Razmislite o sljedećem scenariju:
-
Pokrenite aplikaciju Windows Presentation Foundation (WPF) utemeljenu na paketu Microsoft .NET Framework 3.5 Service Pack 1 (SP1).
-
Aplikacija WPF koristi kanal za hardversko renderiranje.
-
Aplikacija učitava i iz memorije mnoge domene aplikacija koje sadrže jednu ili više prilagođenih komponenti WPF dodatka.
U tom scenariju aplikacija naiđe na iznimku System.Runtime.InteropServices.COMException, a zatim se aplikacija ruši.
Rješenje
Informacije o hitnim popravcima
Podržani hitni popravak dostupan je od Microsofta. No taj je hitni popravak namijenjen ispravljanja samo problema opisanog u ovom članku. Taj hitni popravak primijenite samo na sustave na koje se pojavljuje taj određeni problem. Taj hitni popravak može primiti dodatno testiranje. Stoga, ako taj problem ne utječe ozbiljno, preporučujemo da pričekate sljedeće ažuriranje softvera koje sadrži taj hitni popravak.
Da biste preuzeli taj hitni popravak iz galerije MSDN koda, posjetite sljedeće Microsoftovo web-mjesto:http://code.msdn.microsoft.com/KB2276690Napomena Galerija MSDN kodova prikazuje jezike za koje je hitni popravak dostupan. Ako ne vidite jezik na popisu, to je zato što stranica resursa galerije koda nije dostupna za taj jezik. Napomena Ako se pojave dodatni problemi ili ako je potrebno otklanjanje poteškoća, možda ćete morati stvoriti zaseban zahtjev za uslugu. Uobičajeni troškovi podrške primijenit će se na dodatna pitanja o podršci i probleme koji ne ispunjavaju uvjete za taj određeni hitni popravak. Potpuni popis telefonskih brojeva Microsoftove službe za korisnike i podrške ili za stvaranje zasebnog zahtjeva za uslugu potražite na sljedećem Microsoftovu web-mjestu:
http://support.microsoft.com/contactus/?ws=support
Preduvjeti
Da biste primijenili taj hitni popravak, morate imati instaliran .NET Framework 3.5 Service Pack 1 (SP1).
Potreba za ponovnim pokretanjem
Ne morate ponovno pokrenuti računalo nakon primjene tog hitnog popravka.
Informacije o zamjeni hitnih popravaka
Taj hitni popravak ne zamjenjuje druge hitne popravke.
Informacije o datoteci
Engleska verzija ovog hitnog popravka sadrži atribute datoteka (ili novije atribute datoteka) koji su navedeni u sljedećoj tablici. Datumi i vremena za te datoteke navedeni su u koordiniranom univerzalnom vremenu (UTC). Kada pregledavate informacije o datoteci, pretvaraju se u lokalno vrijeme. Da biste pronašli razliku između UTC-a i lokalnog vremena, koristite karticu Vremenska zona u stavci Datum i vrijeme na upravljačkoj ploči.
Za sve podržane verzije sustava Windows Server 2003 i Windows XP utemeljene na procesoru x86
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
02. srpnja 2010. |
01:32 |
x86 |
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
02. srpnja 2010. |
01:28 |
x86 |
Presentationhost.exe |
4.0.40305.0 |
295,264 |
02. srpnja 2010. |
01:28 |
x86 |
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
02. srpnja 2010. |
01:32 |
x86 |
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
02. srpnja 2010. |
01:32 |
x86 |
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
02. srpnja 2010. |
01:32 |
x86 |
Za sve podržane verzije sustava Windows Server 2003 i Windows XP utemeljene na procesoru x64
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
02. srpnja 2010. |
00:53 |
x64 |
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
02. srpnja 2010. |
00:48 |
x64 |
Presentationhost.exe |
4.0.31106.0 |
320,352 |
02. srpnja 2010. |
00:48 |
x64 |
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
02. srpnja 2010. |
00:53 |
x64 |
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
02. srpnja 2010. |
00:53 |
x64 |
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
02. srpnja 2010. |
00:53 |
x64 |
Za sve podržane verzije sustava Windows Vista Service Pack 2 (SP2) i Windows Server 2008 Service Pack 2 (SP2) utemeljene na procesoru x86
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
09. – 2010. |
10:52 |
x86 |
Presentationfontcache.exe.config |
Not Applicable |
161 |
03. travnja 2009. |
21:25 |
Not Applicable |
Wpfgfx_v0300.dll |
3.0.6920.4003 |
1,736,024 |
17. lipnja 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 |
Za sve podržane verzije sustava Windows Vista SP2 i Windows Server 2008 SP2 utemeljene na procesoru x64
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
09. – 2010. |
10:52 |
x64 |
Presentationfontcache.exe.config |
Not Applicable |
161 |
03. travnja 2009. |
20:58 |
Not Applicable |
Wpfgfx_v0300.dll |
3.0.6920.4003 |
2,254,168 |
17. lipnja 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 |
Za sve podržane verzije sustava Windows 7 utemeljene na procesoru x86
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.5012 |
4,218,880 |
11. srpnja 2010. |
01:29 |
x86 |
Presentationfontcache.exe.config |
Not Applicable |
161 |
10. lipnja 2009. |
21:14 |
Not Applicable |
Wpfgfx_v0300.dll |
3.0.6920.4902 |
1,736,536 |
10. lipnja 2009. |
21:14 |
x86 |
Presentationframework.dll |
3.0.6920.5012 |
5,279,744 |
11. srpnja 2010. |
01:29 |
x86 |
Presentationhostdll.dll |
3.0.6920.5012 |
130,408 |
11. srpnja 2010. |
01:29 |
x86 |
Presentationhost.exe |
4.0.31106.0 |
295,264 |
11. srpnja 2010. |
01:29 |
x86 |
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
11. srpnja 2010. |
01:29 |
x86 |
Windowsbase.dll |
3.0.6920.5012 |
1,253,376 |
11. srpnja 2010. |
01:29 |
x86 |
Za sve podržane verzije sustava Windows 7 i Windows Server 2008 R2 utemeljene na procesoru x64
Naziv datoteke |
Verzija datoteke |
Veličina datoteke |
Datum |
Vrijeme |
Platforma |
---|---|---|---|---|---|
Presentationcore.dll |
3.0.6920.5012 |
3,997,696 |
11. srpnja 2010. |
01:28 |
x64 |
Presentationfontcache.exe.config |
Not Applicable |
161 |
10. lipnja 2009. |
20:30 |
Not Applicable |
Wpfgfx_v0300.dll |
3.0.6920.4902 |
2,255,176 |
10. lipnja 2009. |
20:30 |
x64 |
Presentationframework.dll |
3.0.6920.5012 |
4,636,672 |
11. srpnja 2010. |
01:28 |
x64 |
Presentationhostdll.dll |
3.0.6920.5012 |
171,368 |
11. srpnja 2010. |
01:28 |
x64 |
Presentationhost.exe |
4.0.31106.0 |
320,352 |
11. srpnja 2010. |
01:28 |
x64 |
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
11. srpnja 2010. |
01:28 |
x64 |
Windowsbase.dll |
3.0.6920.5012 |
1,114,112 |
11. srpnja 2010. |
01:28 |
x64 |
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku "Odnosi se na".
Zaobilazno rješenje
Da biste zaobišli taj problem, onemogućite kanal za renderiranje hardvera, a zatim omogućite kanal za renderiranje softvera.
Da biste onemogućili kanal za hardversko renderiranje i omogućili kanal za renderiranje softvera, koristite jednu od sljedećih metoda:-
Postavite enumeraciju System.Windows.Interop.RenderMode.
Slijedi ogledni kod koji postavlja enumeraciju System.Windows.Interop.RenderMode da bi se omogućio kanal za renderiranje softvera prilikom učitavanja WPF prozora: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; } -
Postavite ključ registra DisableHWAcceleration .
Važno Ovaj odjeljak, metoda ili zadatak sadrži korake koji vas obavještavaju o tome kako izmijeniti registar. A nepravilnim izmjenama registra možete prouzročiti ozbiljne probleme. Zato pažljivo slijedite ove upute. Radi dodatne zaštite prije izmjene registra stvorite njegovu sigurnosnu kopiju. Na taj ćete način moći vratiti registar ako se pojave problemi. Dodatne informacije o stvaranju sigurnosne kopije i vraćanju registra potražite u članku iz Microsoftove baze znanja pod brojem322756 Kako sigurnosno kopirati i vratiti registar u sustavu Windows Upozorenje Ta metoda onemogućuje kanal za renderiranje hardvera za sve WPF aplikacije na računalu. Stoga se metoda ne potiče obično, osim kada korisnici kontroliraju okruženja i ne smetaju učinak za sve WPF aplikacije.
-
Kliknite Start, zatim Pokreni, upišite regedit, a zatim pritisnite ENTER.
-
Pronađite i kliknite sljedeći potključ registra:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics
-
Postavite vrijednost stavke registra DisableHWAcceleration na 1.
Napomena Ako unos registra DisableHWAcceleration ne postoji, desnom tipkom miša kliknite potključ registra, pokažite na Novo, a zatim kliknite Vrijednost niza da biste stvorili novi unos registra. Upišite DisableHWAcceleration za naziv nove stavke registra, dvokliknite DisableHWAcceleration, a zatim promijenite podatke vrijednosti DisableHWAcceleration u 1. -
Zatvorite Uređivač registra.
-
Dodatne informacije
Dodatne informacije o kanalu za renderiranje softvera potražite na sljedećem web-mjestu Microsoft Developer Network (MSDN) : Općenite informacije o kanalu za renderiranje softvera Dodatne informacije o postavkama registra WPF renderinga potražite na sljedećem web-mjestu MSDN-a: Općenite informacije o postavkama registra WPF renderinga Dodatne informacije o enumeraciji System.Windows.Interop.RenderMode potražite na sljedećem web-mjestu MSDN-a: Općenite informacije o enumeraciji "System.Windows.Interop.RenderMode"