Symptomen
Neem het volgende scenario:
-
U voert een Op Microsoft .NET Framework 3.5 Service Pack 1 (SP1) gebaseerde Windows Presentation Foundation-toepassing (WPF) uit.
-
De WPF-toepassing maakt gebruik van de hardwarerenderingspijplijn.
-
De toepassing laadt en verwijdert veel toepassingsdomeinen die een of meer aangepaste WPF-invoegtoepassingsonderdelen bevatten.
In dit scenario treedt de toepassing op de uitzondering System.Runtime.InteropServices.COMException en loopt de toepassing vast.
Oplossing
Hotfix-informatie
Er is een ondersteunde hotfix beschikbaar van Microsoft. Deze hotfix is echter alleen bedoeld om het probleem op te lossen dat in dit artikel wordt beschreven. Pas deze hotfix alleen toe op systemen die dit specifieke probleem ondervinden. Deze hotfix kan aanvullende tests ontvangen. Daarom raden we u aan te wachten op de volgende software-update die deze hotfix bevat als u niet ernstig last hebt van dit probleem. Als u deze hotfix wilt downloaden uit de MSDN-codegalerie, gaat u naar de volgende Microsoft-website:
http://code.msdn.microsoft.com/KB2276690Opmerking In de MSDN-codegalerie worden de talen weergegeven waarvoor de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, komt dit doordat de resourcepagina van de Codegalerie niet beschikbaar is voor die taal. Opmerking Als er extra problemen optreden of als er probleemoplossing is vereist, moet u mogelijk een afzonderlijke serviceaanvraag maken. De gebruikelijke ondersteuningskosten zijn van toepassing op aanvullende ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Ga naar de volgende Microsoft-website voor een volledige lijst met telefoonnummers voor klantenservice en ondersteuning van Microsoft of voor het maken van een afzonderlijke serviceaanvraag:
http://support.microsoft.com/contactus/?ws=support
Vereisten
Als u deze hotfix wilt toepassen, moet .NET Framework 3.5 Service Pack 1 (SP1) zijn geïnstalleerd.
Vereiste voor opnieuw opstarten
U hoeft de computer niet opnieuw op te starten nadat u deze hotfix hebt toegepast.
Informatie over het vervangen van hotfix's
Deze hotfix vervangt geen andere hotfix.
Bestandsinformatie
De Engelse versie van deze hotfix bevat de bestandskenmerken (of latere bestandskenmerken) die in de volgende tabel worden vermeld. De datums en tijden voor deze bestanden worden vermeld in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie bekijkt, wordt deze geconverteerd naar de lokale tijd. Als u het verschil tussen UTC en lokale tijd wilt vinden, gebruikt u het tabblad Tijdzone in het item Datum en tijd in het Configuratiescherm.
Voor alle ondersteunde x86-versies van Windows Server 2003 en Windows XP
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
02-sep-2010 |
01:32 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
02-sep-2010 |
01:28 |
x86 |
|
Presentationhost.exe |
4.0.40305.0 |
295,264 |
02-sep-2010 |
01:28 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
02-sep-2010 |
01:32 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
02-sep-2010 |
01:32 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
02-sep-2010 |
01:32 |
x86 |
Voor alle ondersteunde x64-versies van Windows Server 2003 en Windows XP
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
02-sep-2010 |
00:53 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
02-sep-2010 |
00:48 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
02-sep-2010 |
00:48 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
02-sep-2010 |
00:53 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
02-sep-2010 |
00:53 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
02-sep-2010 |
00:53 |
x64 |
Voor alle ondersteunde x86-versies van Windows Vista Service Pack 2 (SP2) en Windows Server 2008 Service Pack 2 (SP2)
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
09-sep-2010 |
10:52 |
x86 |
|
Presentationfontcache.exe.config |
Niet van toepassing |
161 |
03-apr-2009 |
21:25 |
Niet van toepassing |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
1,736,024 |
17-jun-2009 |
08:03 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
09-sep-2010 |
10:52 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
09-sep-2010 |
10:52 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
09-sep-2010 |
10:52 |
x86 |
Voor alle ondersteunde x64-versies van Windows Vista SP2 en Van Windows Server 2008 SP2
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
09-sep-2010 |
10:52 |
x64 |
|
Presentationfontcache.exe.config |
Niet van toepassing |
161 |
03-apr-2009 |
20:58 |
Niet van toepassing |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
2,254,168 |
17-jun-2009 |
08:03 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
09-sep-2010 |
10:52 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
09-sep-2010 |
10:52 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
09-sep-2010 |
10:52 |
x64 |
Voor alle ondersteunde x86-versies van Windows 7
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
4,218,880 |
11-sep-2010 |
01:29 |
x86 |
|
Presentationfontcache.exe.config |
Niet van toepassing |
161 |
10-jun-2009 |
21:14 |
Niet van toepassing |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
1,736,536 |
10-jun-2009 |
21:14 |
x86 |
|
Presentationframework.dll |
3.0.6920.5012 |
5,279,744 |
11-sep-2010 |
01:29 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
130,408 |
11-sep-2010 |
01:29 |
x86 |
|
Presentationhost.exe |
4.0.31106.0 |
295,264 |
11-sep-2010 |
01:29 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
11-sep-2010 |
01:29 |
x86 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,253,376 |
11-sep-2010 |
01:29 |
x86 |
Voor alle ondersteunde x64-versies van Windows 7 en Windows Server 2008 R2
|
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Perron |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
3,997,696 |
11-sep-2010 |
01:28 |
x64 |
|
Presentationfontcache.exe.config |
Niet van toepassing |
161 |
10-jun-2009 |
20:30 |
Niet van toepassing |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
2,255,176 |
10-jun-2009 |
20:30 |
x64 |
|
Presentationframework.dll |
3.0.6920.5012 |
4,636,672 |
11-sep-2010 |
01:28 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
171,368 |
11-sep-2010 |
01:28 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
11-sep-2010 |
01:28 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
11-sep-2010 |
01:28 |
x64 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,114,112 |
11-sep-2010 |
01:28 |
x64 |
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Tijdelijke oplossing
U kunt dit probleem omzeilen door de hardwarerenderingspijplijn uit te schakelen en vervolgens de softwarerenderingspijplijn in te schakelen. Als u de hardwarerenderingspijplijn wilt uitschakelen en de pijplijn voor softwarerendering wilt inschakelen, gebruikt u een van de volgende methoden:
-
Stel de opsomming System.Windows.Interop.RenderMode in.Hier volgt een voorbeeldcode waarmee de opsomming System.Windows.Interop.RenderMode wordt ingesteld om de softwarerenderingspijplijn in te schakelen wanneer een WPF-venster wordt geladen:
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;}
-
Stel de registersleutel DisableHWAcceleration in .Belangrijk Deze sectie, methode of taak bevat stappen die u laten weten hoe u het register kunt wijzigen. Als u het register op onjuiste wijze wijzigt, kunnen er echter grote problemen optreden. Het is dan ook belangrijk dat u deze stappen zorgvuldig uitvoert. Maak een back-up van het register voordat u wijzigingen aanbrengt. Als er een probleem optreedt, kunt u het register altijd nog herstellen. Als u meer informatie wilt over het maken van een back-up van het register en het herstellen van het register, klikt u op de volgende artikelnummers in de Microsoft Knowledge Base:
322756 Een back-up van het register maken en herstellen in WindowsWaarschuwing Met deze methode wordt de hardwarerenderingspijplijn uitgeschakeld voor alle WPF-toepassingen op de computer. Daarom wordt de methode meestal niet aangemoedigd, behalve wanneer de klanten de omgevingen beheren en het effect voor alle WPF-toepassingen niet erg vinden.
-
Klik op Start, klik op Uitvoeren, typ regedit en druk op Enter.
-
Zoek naar en klik op de volgende registersleutel:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics
-
Stel de waarde van de registervermelding DisableHWAcceleration in op 1.Opmerking Als de registervermelding DisableHWAcceleration niet bestaat, klikt u met de rechtermuisknop op de registersubsleutel, wijst u Nieuw aan en klikt u vervolgens op Tekenreekswaarde om een nieuwe registervermelding te maken. Typ DisableHWAcceleration als naam van de nieuwe registervermelding, dubbelklik op DisableHWAcceleration en wijzig vervolgens de waarde voor DisableHWAcceleration in 1.
-
Sluit de Register-editor af.
-
Meer informatie
Ga voor meer informatie over de softwarerenderingspijplijn naar de volgende MSDN-website (Microsoft Developer Network):Algemene informatie over de softwarerenderingspijplijnVoor meer informatie over de registerinstellingen van WPF-rendering gaat u naar de volgende MSDN-website:Algemene informatie over de registerinstellingen van WPF-renderingGa voor meer informatie over de opsomming System.Windows.Interop.RenderMode naar de volgende MSDN-website:Algemene informatie over de opsomming 'System.Windows.Interop.RenderMode'