적용 대상
.NET Framework 3.5 Service Pack 1

증상

다음과 같은 경우를 생각해 볼 수 있습니다.

  • Microsoft .NET Framework 3.5 SP1(서비스 팩 1) 기반 WPF(Windows Presentation Foundation) 애플리케이션을 실행합니다.

  • WPF 애플리케이션은 하드웨어 렌더링 파이프라인을 사용합니다.

  • 애플리케이션은 하나 이상의 사용자 지정 WPF 추가 기능 구성 요소를 포함하는 많은 애플리케이션 도메인을 로드하고 언로드합니다.

이 시나리오에서 애플리케이션에서 System.Runtime.InteropServices.COMException 예외가 발생한 다음 애플리케이션이 충돌합니다.

해결 방법

핫픽스 정보

지원되는 핫픽스는 Microsoft에서 사용할 수 있습니다. 그러나 이 핫픽스는 이 문서에 설명된 문제만 수정하기 위한 것입니다. 이 특정 문제가 발생하는 시스템에만 이 핫픽스를 적용합니다. 이 핫픽스는 추가 테스트를 받을 수 있습니다. 따라서 이 문제의 심각한 영향을 받지 않는 경우 이 핫픽스를 포함하는 다음 소프트웨어 업데이트를 기다리는 것이 좋습니다. MSDN 코드 갤러리에서 이 핫픽스를 다운로드하려면 다음 Microsoft 웹 사이트를 방문하세요.

http://code.msdn.microsoft.com/KB2276690참고 MSDN 코드 갤러리에는 핫픽스를 사용할 수 있는 언어가 표시됩니다. 나열된 언어가 표시되지 않으면 코드 갤러리 리소스 페이지를 해당 언어에 사용할 수 없기 때문입니다. 참고 추가 문제가 발생하거나 문제 해결이 필요한 경우 별도의 서비스 요청을 만들어야 할 수 있습니다. 일반적인 지원 비용은 이 특정 핫픽스에 적합하지 않은 추가 지원 질문 및 문제에 적용됩니다. Microsoft 고객 서비스 및 지원 전화 번호의 전체 목록을 확인하거나 별도의 서비스 요청을 만들려면 다음 Microsoft 웹 사이트를 방문하세요.

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

전제 조건

이 핫픽스를 적용하려면 .NET Framework 3.5 SP1(서비스 팩 1)이 설치되어 있어야 합니다. 

다시 시작 요구 사항

이 핫픽스를 적용한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.

핫픽스 대체 정보

이 핫픽스는 다른 핫픽스를 대체하지 않습니다.

파일 정보

이 핫픽스의 영어 버전에는 다음 표에 나열된 파일 특성(또는 이후 파일 특성)이 있습니다. 해당 파일의 날짜와 시간은 UTC(협정 세계시)로 표시됩니다. 파일 정보를 볼 때 로컬 시간으로 변환됩니다. UTC와 현지 시간의 차이를 알려면 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하십시오.

지원되는 모든 x86 기반 버전의 Windows Server 2003 및 Windows XP의 경우

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

2010년 9월 2일

01:32

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

2010년 9월 2일

01:28

x86

Presentationhost.exe

4.0.40305.0

295,264

2010년 9월 2일

01:28

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

2010년 9월 2일

01:32

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

2010년 9월 2일

01:32

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

2010년 9월 2일

01:32

x86

지원되는 모든 x64 기반 버전의 Windows Server 2003 및 Windows XP의 경우

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

2010년 9월 2일

00:53

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

2010년 9월 2일

00:48

x64

Presentationhost.exe

4.0.31106.0

320,352

2010년 9월 2일

00:48

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

2010년 9월 2일

00:53

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

2010년 9월 2일

00:53

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

2010년 9월 2일

00:53

x64

지원되는 모든 x86 기반 버전의 Windows Vista SP2(서비스 팩 2) 및 Windows Server 2008 SP2(서비스 팩 2)

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

2010년 9월 9일

10:52

x86

Presentationfontcache.exe.config

해당 없음

161

2009년 4월 3일

2,125

해당 없음

Wpfgfx_v0300.dll

3.0.6920.4003

1,736,024

2009년 6월 17일

03:08

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

2010년 9월 9일

10:52

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

2010년 9월 9일

10:52

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

2010년 9월 9일

10:52

x86

지원되는 모든 x64 기반 버전의 Windows Vista SP2 및 Windows Server 2008 SP2의 경우

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

2010년 9월 9일

10:52

x64

Presentationfontcache.exe.config

해당 없음

161

2009년 4월 3일

20:58

해당 없음

Wpfgfx_v0300.dll

3.0.6920.4003

2,254,168

2009년 6월 17일

03:08

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

2010년 9월 9일

10:52

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

2010년 9월 9일

10:52

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

2010년 9월 9일

10:52

x64

지원되는 모든 x86 기반 버전의 Windows 7

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.5012

4,218,880

2010년 9월 11일

01:29

x86

Presentationfontcache.exe.config

해당 없음

161

2009년 6월 10일

21:14

해당 없음

Wpfgfx_v0300.dll

3.0.6920.4902

1,736,536

2009년 6월 10일

21:14

x86

Presentationframework.dll

3.0.6920.5012

5,279,744

2010년 9월 11일

01:29

x86

Presentationhostdll.dll

3.0.6920.5012

130,408

2010년 9월 11일

01:29

x86

Presentationhost.exe

4.0.31106.0

295,264

2010년 9월 11일

01:29

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

2010년 9월 11일

01:29

x86

Windowsbase.dll

3.0.6920.5012

1,253,376

2010년 9월 11일

01:29

x86

지원되는 모든 x64 기반 버전의 Windows 7 및 Windows Server 2008 R2용

File name

파일 버전

파일 크기

날짜

Time

Platform

Presentationcore.dll

3.0.6920.5012

3,997,696

2010년 9월 11일

01:28

x64

Presentationfontcache.exe.config

해당 없음

161

2009년 6월 10일

20:30

해당 없음

Wpfgfx_v0300.dll

3.0.6920.4902

2,255,176

2009년 6월 10일

20:30

x64

Presentationframework.dll

3.0.6920.5012

4,636,672

2010년 9월 11일

01:28

x64

Presentationhostdll.dll

3.0.6920.5012

171,368

2010년 9월 11일

01:28

x64

Presentationhost.exe

4.0.31106.0

320,352

2010년 9월 11일

01:28

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

2010년 9월 11일

01:28

x64

Windowsbase.dll

3.0.6920.5012

1,114,112

2010년 9월 11일

01:28

x64

상태

Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

해결 방법 

이 문제를 해결하려면 하드웨어 렌더링 파이프라인을 사용하지 않도록 설정한 다음 소프트웨어 렌더링 파이프라인을 사용하도록 설정합니다. 하드웨어 렌더링 파이프라인을 사용하지 않도록 설정하고 소프트웨어 렌더링 파이프라인을 사용하도록 설정하려면 다음 방법 중 하나를 사용합니다.

  • System.Windows.Interop.RenderMode 열거형을 설정합니다.다음은 WPF 창이 로드될 때 소프트웨어 렌더링 파이프라인을 사용하도록 System.Windows.Interop.RenderMode 열거형을 설정하는 몇 가지 예제 코드입니다.

    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;}
  • DisableHWAcceleration 레지스트리 키를 설정합니다.중요 이 섹션, 메서드 또는 작업에는 레지스트리를 수정하는 방법을 알려주는 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가된 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 이렇게 하면 문제가 발생하더라도 레지스트리를 복원할 수 있습니다. Windows XP 및 Windows Server 2003에서 레지스트리를 백업, 편집 및 복원하는 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료를 참조하세요.

    322756 Windows경고에서 레지스트리를 백업 및 복원하는 방법 이 방법은 컴퓨터의 모든 WPF 애플리케이션에 대해 하드웨어 렌더링 파이프라인을 사용하지 않도록 설정합니다. 따라서 일반적으로 고객이 환경을 제어하고 모든 WPF 애플리케이션에 대한 효과를 신경 쓰지 않는 경우를 제외하고는 메서드를 권장하지 않습니다.

    1. 시작을 클릭하고 실행을 클릭하고 regedit를 입력한 다음 Enter 키를 누릅니다.

    2. 다음 레지스트리 하위 키를 찾아서 클릭합니다.

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

    3. DisableHWAcceleration 레지스트리 항목의 값을 1로 설정합니다.참고 DisableHWAcceleration 레지스트리 항목이 없는 경우 레지스트리 하위 키를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 문자열 값을 클릭하여 새 레지스트리 항목을 만듭니다. 새 레지스트리 항목의 이름에 대해 DisableHWAcceleration 을 입력하고 DisableHWAcceleration을 두 번 클릭한 다음 DisableHWAcceleration 값 데이터를 1로 변경합니다.

    4. 레지스트리 편집기를 종료합니다.

추가 정보

소프트웨어 렌더링 파이프라인에 대한 자세한 내용은 다음 MSDN(Microsoft Developer Network) 웹 사이트를 방문하세요. 소프트웨어 렌더링 파이프라인에 대한 일반 정보 WPF 렌더링의 레지스트리 설정에 대한 자세한 내용은 다음 MSDN 웹 사이트:WPF 렌더링의 레지스트리 설정에 대한 일반 정보를 참조하세요.System.Windows.Interop.RenderMode 열거형에 대한 자세한 내용은 다음 MSDN 웹 사이트:"System.Windows.Interop.RenderMode" 열거형에 대한 일반 정보를 참조하세요.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.