Ошибка System.Windows.Media.DrawingVisual.RenderOpen() через некоторое время

Случай использования. Я использую WPF для динамического наложения текста на изображения в веб-контексте.

Решение: Я использую DrawingContext из DrawingVisual (завернутый в оператор using), чтобы нарисовать исходный растровый и наложенный текст.

Проблема: после нескольких тысяч запросов метод [DrawingVisual].RenderOpen() начинает отказываться от выполнения и выдает следующее исключение:

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 ...

Исправление Temp: Единственное исправление для этого - перезапуск пула приложений IIS на сервере, который исправляет проблему в течение нескольких часов.

Вопрос: Кто-нибудь подумал о причине этой проблемы (утечки, потоки, неуправляемый код и т.д.)? Есть ли другой способ получить текст на изображении, избегая рисования? Возможно ли писать геометрию в растровое изображение и накладывать растровые изображения напрямую?

Ответы