Jelenségek
Vegye figyelembe a következő forgatókönyvet:
-
Microsoft .NET Framework 3.5 Service Pack 1 (SP1) alapú Windows Presentation Foundation (WPF) alkalmazást futtat.
-
A WPF-alkalmazás a hardveres renderelési folyamatot használja.
-
Az alkalmazás számos olyan alkalmazástartományt tölt be és távolít el, amelyek egy vagy több egyéni WPF-bővítményösszetevőt tartalmaznak.
Ebben a forgatókönyvben az alkalmazás System.Runtime.InteropServices.COMException kivételt észlel, majd az alkalmazás összeomlik.
Megoldás
Gyorsjavítási információk
A Microsoft által támogatott gyorsjavítás érhető el. Ez a gyorsjavítás azonban csak az ebben a cikkben ismertetett probléma megoldására szolgál. Ezt a gyorsjavítást csak azokra a rendszerekre alkalmazza, amelyeknél ez a probléma jelentkezik. Ez a gyorsjavítás további tesztelést kaphat. Ezért ha a probléma nem érinti súlyosan, javasoljuk, hogy várja meg a következő szoftverfrissítést, amely tartalmazza ezt a gyorsjavítást. Ha le szeretné tölteni ezt a gyorsjavítást az MSDN Code Galleryből, látogasson el a Microsoft következő webhelyére:
http://code.msdn.microsoft.com/KB2276690Megjegyzés Az MSDN-kódtár megjeleníti azokat a nyelveket, amelyekhez a gyorsjavítás elérhető. Ha nem látja a nyelvet a listában, annak az az oka, hogy a Kódtár erőforráslapja nem érhető el az adott nyelvhez. Megjegyzés Ha további problémák merülnek fel, vagy hibaelhárításra van szükség, előfordulhat, hogy külön szolgáltatáskérést kell létrehoznia. A szokásos támogatási költségek azokra a további támogatási kérdésekre és problémákra vonatkoznak, amelyek nem jogosultak erre az adott gyorsjavításra. A Microsoft ügyfélszolgálati és támogatási telefonszámainak teljes listájáért vagy egy külön szolgáltatáskérés létrehozásához látogasson el a Microsoft következő webhelyére:
http://support.microsoft.com/contactus/?ws=support
Előfeltételek
A gyorsjavítás alkalmazásához telepítve kell lennie a .NET-keretrendszer 3.5 Service Pack 1 (SP1) verziójának.
Újraindítás szükségessége
A gyorsjavítás alkalmazása után nem kell újraindítania a számítógépet.
A gyorsjavítások cseréjére vonatkozó információk
Ez a gyorsjavítás nem helyettesíti a többi gyorsjavítást.
Fájladatok
A gyorsjavítás angol nyelvű verziója tartalmazza az alábbi táblázatban felsorolt fájlattribútumokat (vagy újabb fájlattribútumokat). Ezeknek a fájloknak a dátumai és időpontjai az egyezményes világidő (UTC) szerint vannak felsorolva. A fájladatok megtekintésekor a rendszer helyi idővé alakítja azokat. Az UTC és a helyi idő különbségének megkereséséhez használja a Vezérlőpult Dátum és idő elemének Időzóna lapját.
A Windows Server 2003 és a Windows XP összes támogatott x86-alapú verziója esetén
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
2010. szeptember 02. |
01:32 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
2010. szeptember 02. |
01:28 |
x86 |
|
Presentationhost.exe |
4.0.40305.0 |
295,264 |
2010. szeptember 02. |
01:28 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
2010. szeptember 02. |
01:32 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
2010. szeptember 02. |
01:32 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
2010. szeptember 02. |
01:32 |
x86 |
A Windows Server 2003 és a Windows XP összes támogatott x64-alapú verziója esetén
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
2010. szeptember 02. |
00:53 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
2010. szeptember 02. |
00:48 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
2010. szeptember 02. |
00:48 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
2010. szeptember 02. |
00:53 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
2010. szeptember 02. |
00:53 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
2010. szeptember 02. |
00:53 |
x64 |
A Windows Vista Service Pack 2 (SP2) és a Windows Server 2008 Service Pack 2 (SP2) összes támogatott x86-alapú verziója esetén
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
4,218,880 |
2010. szeptember 9. |
10:52 |
x86 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
2009.03.03. |
21:25 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
1,736,024 |
2009. június 17. |
08:03 |
x86 |
|
Presentationframework.dll |
3.0.6920.4033 |
5,279,744 |
2010. szeptember 9. |
10:52 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
130,408 |
2010. szeptember 9. |
10:52 |
x86 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,249,280 |
2010. szeptember 9. |
10:52 |
x86 |
A Windows Vista SP2 és a Windows Server 2008 SP2 összes támogatott x64-alapú verziója esetén
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.4033 |
3,997,696 |
2010. szeptember 9. |
10:52 |
x64 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
2009.03.03. |
20:58 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4003 |
2,254,168 |
2009. június 17. |
08:03 |
x64 |
|
Presentationframework.dll |
3.0.6920.4033 |
4,636,672 |
2010. szeptember 9. |
10:52 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.4033 |
171,368 |
2010. szeptember 9. |
10:52 |
x64 |
|
Windowsbase.dll |
3.0.6920.4033 |
1,110,016 |
2010. szeptember 9. |
10:52 |
x64 |
A Windows 7 összes támogatott x86-alapú verziójához
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
4,218,880 |
2010. szeptember 11. |
01:29 |
x86 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
2009. június 10. |
21:14 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
1,736,536 |
2009. június 10. |
21:14 |
x86 |
|
Presentationframework.dll |
3.0.6920.5012 |
5,279,744 |
2010. szeptember 11. |
01:29 |
x86 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
130,408 |
2010. szeptember 11. |
01:29 |
x86 |
|
Presentationhost.exe |
4.0.31106.0 |
295,264 |
2010. szeptember 11. |
01:29 |
x86 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
99,176 |
2010. szeptember 11. |
01:29 |
x86 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,253,376 |
2010. szeptember 11. |
01:29 |
x86 |
A Windows 7 és a Windows Server 2008 R2 összes támogatott x64-alapú verziója esetén
|
Fájlnév |
Fájlverzió |
Méret |
Dátum |
Idő |
Platform |
|---|---|---|---|---|---|
|
Presentationcore.dll |
3.0.6920.5012 |
3,997,696 |
2010. szeptember 11. |
01:28 |
x64 |
|
Presentationfontcache.exe.config |
Not Applicable |
161 |
2009. június 10. |
20:30 |
Not Applicable |
|
Wpfgfx_v0300.dll |
3.0.6920.4902 |
2,255,176 |
2009. június 10. |
20:30 |
x64 |
|
Presentationframework.dll |
3.0.6920.5012 |
4,636,672 |
2010. szeptember 11. |
01:28 |
x64 |
|
Presentationhostdll.dll |
3.0.6920.5012 |
171,368 |
2010. szeptember 11. |
01:28 |
x64 |
|
Presentationhost.exe |
4.0.31106.0 |
320,352 |
2010. szeptember 11. |
01:28 |
x64 |
|
Presentationhostproxy.dll |
4.0.31106.0 |
109,928 |
2010. szeptember 11. |
01:28 |
x64 |
|
Windowsbase.dll |
3.0.6920.5012 |
1,114,112 |
2010. szeptember 11. |
01:28 |
x64 |
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.
Kerülő megoldás
A probléma megkerüléséhez tiltsa le a hardveres renderelési folyamatot, majd engedélyezze a szoftveres megjelenítési folyamatot. A hardveres megjelenítési folyamat letiltásához és a szoftveres megjelenítési folyamat engedélyezéséhez használja az alábbi módszerek egyikét:
-
Állítsa be a System.Windows.Interop.RenderMode enumerálást.Az alábbi példakód beállítja a System.Windows.Interop.RenderMode enumerálást a szoftveres megjelenítési folyamat engedélyezéséhez WPF-ablak betöltésekor:
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;}
-
Állítsa be a DisableHWAcceleration beállításkulcsot.Fontos: Ez a szakasz, metódus vagy feladat olyan lépéseket tartalmaz, amelyekből megtudhatja, hogyan módosíthatja a beállításjegyzéket. A beállításjegyzék helytelen módosítása azonban komoly problémákat okozhat, ezért ügyeljen az utasítások pontos betartására. A módosítás előtt készítsen biztonsági másolatot a beállításjegyzékről, hogy szükség esetén visszaállíthassa azt. A beállításjegyzék biztonsági mentéséről és visszaállításáról a Microsoft Tudásbázis következő cikkéből tájékozódhat:
322756 A beállításjegyzék biztonsági mentése és visszaállítása a WindowsbanFigyelmeztetés Ez a módszer letiltja a hardveres renderelési folyamatot a számítógépen található összes WPF-alkalmazás esetében. Ezért a módszert általában nem javasoljuk, kivéve, ha az ügyfelek szabályozzák a környezeteket, és nem bánják, hogy az összes WPF-alkalmazásra hatással van.
-
Kattintson a Start gombra, kattintson a Futtatás parancsra, írja be a regedit parancsot, majd nyomja le az ENTER billentyűt.
-
Keresse meg a következő beállításkulcsot, és kattintson rá:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics
-
Állítsa a DisableHWAcceleration beállításjegyzékbeli bejegyzés értékét 1-re.Megjegyzés Ha a DisableHWAcceleration beállításjegyzékbeli bejegyzés nem létezik, kattintson a jobb gombbal a beállításjegyzék alkulcsára, mutasson az Új pontra, majd kattintson a Sztringérték elemre egy új beállításjegyzék-bejegyzés létrehozásához. Írja be a DisableHWAcceleration kifejezést az új beállításjegyzék-bejegyzés nevére, kattintson duplán a DisableHWAcceleration elemre, majd módosítsa a DisableHWAcceleration értékadatokat 1-es értékre.
-
Zárja be a Beállításszerkesztőt.
-
További információ
A szoftver renderelési folyamatával kapcsolatos további információkért látogasson el a Microsoft Developer Network (MSDN) következő webhelyére:Általános információk a szoftver renderelési folyamatárólA WPF-renderelés beállításjegyzék-beállításaival kapcsolatos további információkért látogasson el az MSDN következő webhelyére:Általános információk a WPF-renderelés beállításjegyzék-beállításairólA System.Windows.Interop.RenderMode enumerálással kapcsolatos további információkért látogasson el a következő MSDN-webhelyre:Általános információk a "System.Windows.Interop.RenderMode" enumerálásról