2011-01-17 7 views
15

사용 사례 : 웹 컨텍스트 내의 이미지에 텍스트를 동적으로 오버레이하기 위해 WPF를 사용하고 있습니다.시간이 지나면 System.Windows.Media.DrawingVisual.RenderOpen() 오류가 발생합니다.

솔루션 : 나는 원래 비트 맵을 그리고 텍스트를 오버레이 (A using 문에 싸여)를 DrawingVisual에서 DrawingContext을 사용하고 있습니다.

문제점 :

The system cannot find the file specified System.ComponentModel.Win32Exception UInt16 RegisterClassEx(WNDCLASSEX_D) at MS.Win32.UnsafeNativeMethods.RegisterClassEx(WNDCLASSEX_D wc_d) 
at MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks) 
at System.Windows.Media.MediaContextNotificationWindow..ctor(MediaContext ownerMediaContext) 
at System.Windows.Media.MediaContext..ctor(Dispatcher dispatcher) 
at System.Windows.Media.MediaContext.From(Dispatcher dispatcher) 
at System.Windows.Media.Visual.VerifyAPIReadWrite() 
at System.Windows.Media.DrawingVisual.RenderOpen() 
at ... 

임시 수정 : 수천은 다음의 경우는 예외 [DrawingVisual].RenderOpen() 메소드 실행을 거부 시작 요청 및 발생 후에이 유일한 수정 서버의 IIS 응용 프로그램 풀 재활용이다 어느 몇 시간 동안 문제를 해결합니다.

질문 : 누구든지이 문제의 원인 (누수, 스레딩, 비 관리 코드 등)에 대해 생각해 보셨습니까? 그림에 시각적 인 텍스트를 표시하지 않고 텍스트를 가져 오는 다른 방법이 있습니까? 아마도 비트 맵에 지오메트리를 작성하고 비트 맵을 직접 오버레이 할 수 있습니까?

+1

나는 비슷한 문제에 봉착 : http://stackoverflow.com/questions/5195808/wpf-formattedtext-the-system-cannot-find-the-file -specified-exception-in-a-serv – Aligned

+0

당신은 DrawingContext와 DrawingVisual을 얻는 방법에 대한 코드 스 니펫을 공유 할 수 있습니까? 왜 DrawingVisual을 재활용하지 않는가? 디스패처가 펌프를 작동하게할까요? –

+0

나는 이것이 오래된 질문이라는 것을 알고 있지만, 프로세스가 메모리 또는 핸들을 누출합니까? 멈춤 덤프가 문제의 근원을 찾는데 도움이 될 것 같습니까? –

답변

1

이것은 오래된 패치입니다. .NET 4.x에 포함되었다고 가정 했겠지만 확실하지 않습니다. 어쨌든 - 당신은 그것을 줄 수 있습니다.

» Discussion & Bug Report

» .NET Patch(x86)

관련 문제