Dotyczy
.NET Framework 3.5 Service Pack 1

Symptomy

Rozpatrzmy następujący scenariusz:

  • Uruchom aplikację Programu Microsoft .NET Framework 3.5 z dodatkiem Service Pack 1 (SP1) opartą na programie Windows Presentation Foundation (WPF).

  • Aplikacja WPF używa potoku renderowania sprzętowego.

  • Aplikacja ładuje i zwalnia wiele domen aplikacji, które zawierają jeden lub więcej niestandardowych składników dodatku WPF.

W tym scenariuszu aplikacja napotka wyjątek System.Runtime.InteropServices.COMException, a następnie aplikacja ulega awarii.

Rozwiązanie

Informacje dotyczące poprawek

Obsługiwana poprawka jest dostępna od firmy Microsoft. Jednak ta poprawka ma na celu naprawienie tylko problemu opisanego w tym artykule. Zastosuj tę poprawkę tylko do systemów, w których występuje ten konkretny problem. Ta poprawka może wymagać dodatkowych testów. Dlatego jeśli ten problem cię nie dotyczy poważnie, zalecamy zaczekanie na kolejną aktualizację oprogramowania zawierającą tę poprawkę. Aby pobrać tę poprawkę z galerii kodów MSDN, odwiedź następującą witrynę internetową firmy Microsoft:

http://code.msdn.microsoft.com/KB2276690Uwaga Galeria kodów MSDN zawiera języki, dla których jest dostępna poprawka. Jeśli nie widzisz swojego języka na liście, oznacza to, że strona zasobu Galeria kodów nie jest dostępna dla tego języka. Uwaga Jeśli wystąpią dodatkowe problemy lub jest wymagane jakiekolwiek rozwiązywanie problemów, może być konieczne utworzenie osobnego żądania usługi. Typowe koszty pomocy technicznej będą miały zastosowanie do dodatkowych pytań dotyczących pomocy technicznej i problemów, które nie kwalifikują się do danej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta i pomocy technicznej firmy Microsoft lub utworzyć oddzielne żądanie obsługi, odwiedź następującą witrynę internetową firmy Microsoft:

http://support.microsoft.com/contactus/?ws=support

Wymagania wstępne

Aby zastosować tę poprawkę, musisz mieć zainstalowany dodatek Service Pack 1 (SP1) programu .NET Framework 3.5. 

Wymaganie ponownego uruchomienia

Po zastosowaniu tej poprawki nie trzeba ponownie uruchamiać komputera.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnej innej poprawki.

Informacje o plikach

Angielska wersja tej poprawki zawiera atrybuty plików (lub nowsze atrybuty plików) wymienione w poniższej tabeli. Daty i godziny dla tych plików są wymienione w uniwersalnym czasie koordynowanym (UTC). Podczas wyświetlania informacji o pliku są konwertowane na czas lokalny. Aby znaleźć różnicę między czasem UTC a czasem lokalnym, użyj karty Strefa czasowa w elemencie Data i godzina w Panelu sterowania.

Dla wszystkich obsługiwanych wersji systemu Windows Server 2003 i Windows XP opartych na architekturze x86

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.4033

4,218,880

02-wrz-2010

01:32

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

02-wrz-2010

01:28

x86

Presentationhost.exe

4.0.40305.0

295,264

02-wrz-2010

01:28

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

02-wrz-2010

01:32

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

02-wrz-2010

01:32

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

02-wrz-2010

01:32

x86

Dla wszystkich obsługiwanych wersji systemu Windows Server 2003 i Windows XP opartych na procesorach x64

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.4033

3,997,696

02-wrz-2010

00:53

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

02-wrz-2010

00:48

x64

Presentationhost.exe

4.0.31106.0

320,352

02-wrz-2010

00:48

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

02-wrz-2010

00:53

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

02-wrz-2010

00:53

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

02-wrz-2010

00:53

x64

Dla wszystkich obsługiwanych x86 wersji systemu Windows Vista z dodatkiem Service Pack 2 (SP2) i Windows Server 2008 z dodatkiem Service Pack 2 (SP2)

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.4033

4,218,880

09-wrz-2010

10:52

x86

Presentationfontcache.exe.config

Nie dotyczy

161

03-kwi-2009

21:25

Nie dotyczy

Wpfgfx_v0300.dll

3.0.6920.4003

1,736,024

17 czerwca 2009 r.

08:03

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

09-wrz-2010

10:52

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

09-wrz-2010

10:52

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

09-wrz-2010

10:52

x86

Dla wszystkich obsługiwanych wersji systemu Windows Vista z dodatkiem SP2 i Windows Server 2008 z dodatkiem SP2 opartych na procesorze x64

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.4033

3,997,696

09-wrz-2010

10:52

x64

Presentationfontcache.exe.config

Nie dotyczy

161

03-kwi-2009

20:58

Nie dotyczy

Wpfgfx_v0300.dll

3.0.6920.4003

2,254,168

17 czerwca 2009 r.

08:03

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

09-wrz-2010

10:52

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

09-wrz-2010

10:52

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

09-wrz-2010

10:52

x64

Dla wszystkich obsługiwanych wersji systemu Windows 7 opartej na procesorze x86

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.5012

4,218,880

11 września 2010 r.

01:29

x86

Presentationfontcache.exe.config

Nie dotyczy

161

10 czerwca 2009 r.

21:14

Nie dotyczy

Wpfgfx_v0300.dll

3.0.6920.4902

1,736,536

10 czerwca 2009 r.

21:14

x86

Presentationframework.dll

3.0.6920.5012

5,279,744

11 września 2010 r.

01:29

x86

Presentationhostdll.dll

3.0.6920.5012

130,408

11 września 2010 r.

01:29

x86

Presentationhost.exe

4.0.31106.0

295,264

11 września 2010 r.

01:29

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

11 września 2010 r.

01:29

x86

Windowsbase.dll

3.0.6920.5012

1,253,376

11 września 2010 r.

01:29

x86

Dla wszystkich obsługiwanych wersji systemu Windows 7 i Windows Server 2008 R2 opartych na procesorach x64

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Podest

Presentationcore.dll

3.0.6920.5012

3,997,696

11 września 2010 r.

01:28

x64

Presentationfontcache.exe.config

Nie dotyczy

161

10 czerwca 2009 r.

20:30

Nie dotyczy

Wpfgfx_v0300.dll

3.0.6920.4902

2,255,176

10 czerwca 2009 r.

20:30

x64

Presentationframework.dll

3.0.6920.5012

4,636,672

11 września 2010 r.

01:28

x64

Presentationhostdll.dll

3.0.6920.5012

171,368

11 września 2010 r.

01:28

x64

Presentationhost.exe

4.0.31106.0

320,352

11 września 2010 r.

01:28

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

11 września 2010 r.

01:28

x64

Windowsbase.dll

3.0.6920.5012

1,114,112

11 września 2010 r.

01:28

x64

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Obejście

Aby obejść ten problem, wyłącz potok renderowania sprzętowego, a następnie włącz potok renderowania oprogramowania. Aby wyłączyć potok renderowania sprzętowego i włączyć potok renderowania oprogramowania, użyj jednej z następujących metod:

  • Ustaw wyliczenie System.Windows.Interop.RenderMode.Poniżej przedstawiono przykładowy kod, który ustawia wyliczenie System.Windows.Interop.RenderMode w celu włączenia potoku renderowania oprogramowania po załadowaniu okna 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;}
  • Ustaw klucz rejestru DisableHWAcceleration .Ważne Ta sekcja, metoda lub zadanie zawiera kroki umożliwiające modyfikowanie rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonywać podane czynności. Dla większego bezpieczeństwa przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej i przywracania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

    322756 Jak wykonać kopię zapasową rejestru i przywrócić go w oknie Ostrzeżenie systemu WindowsTa metoda wyłącza potok renderowania sprzętowego dla wszystkich aplikacji WPF na komputerze. Dlatego metoda nie jest zalecane zwykle z wyjątkiem sytuacji, gdy klienci kontrolują środowiska i nie mają nic przeciwko wpływu dla wszystkich aplikacji WPF.

    1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz regedit, a następnie naciśnij ENTER.

    2. Zlokalizuj, a następnie kliknij następujący podklucz rejestru:

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

    3. Ustaw wartość wpisu rejestru DisableHWAcceleration na 1.Uwaga Jeśli wpis rejestru DisableHWAcceleration nie istnieje, kliknij prawym przyciskiem myszy podklucz rejestru, wskaż pozycję Nowy, a następnie kliknij pozycję Wartość ciągu , aby utworzyć nowy wpis rejestru. Wpisz DisableHWAcceleration dla nazwy nowego wpisu rejestru, kliknij dwukrotnie DisableHWAcceleration, a następnie zmień wartość DisableHWAcceleration na 1.

    4. Zamknij Edytor rejestru.

Więcej informacji

Aby uzyskać więcej informacji na temat potoku renderowania oprogramowania, odwiedź następującą witrynę internetową Microsoft Developer Network (MSDN):Ogólne informacje o potokurenderowania oprogramowania Aby uzyskać więcej informacji na temat ustawień rejestru renderowania WPF, odwiedź następującą witrynę internetową MSDN:Ogólne informacje o ustawieniach rejestru renderowania WPFAby uzyskać więcej informacji na temat wyliczenia System.Windows.Interop.RenderMode, odwiedź następującą witrynę internetową MSDN:Ogólne informacje o wyliczaniu "System.Windows.Interop.RenderMode".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.