2011-01-17 36 views
15

Trường hợp sử dụng: Tôi đang sử dụng WPF để tự động phủ văn bản lên hình ảnh trong ngữ cảnh web.Lỗi System.Windows.Media.DrawingVisual.RenderOpen() sau một thời gian

Giải pháp: Tôi đang sử dụng DrawingContext từ DrawingVisual (được dán trong câu lệnh using) để vẽ bitmap và văn bản lớp phủ gốc.

Vấn đề: Sau một vài ngàn yêu cầu các phương pháp [DrawingVisual].RenderOpen() bắt đầu từ chối thi công và ném ngoại lệ sau đây:

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 sửa chữa: Việc sửa chữa chỉ cho điều này là để tái chế các hồ bơi ứng dụng IIS trên máy chủ mà khắc phục sự cố trong vài giờ.

Câu hỏi: Bất cứ ai cũng có ý nghĩ về nguyên nhân của vấn đề này (rò rỉ, luồng, mã không được quản lý, v.v ...)? Có cách nào khác để nhận được văn bản trên một hình ảnh tránh hình vẽ không? Có lẽ viết hình học cho một bitmap và chồng lên các bitmap trực tiếp?

+1

Tôi đang gặp một vấn đề tương tự: http://stackoverflow.com/questions/5195808/wpf-formattedtext-the-system-cannot-find-the-file -specified-exception-in-a-serv – Aligned

+0

Bạn có thể chia sẻ một đoạn mã về cách bạn đang nhận được DrawingContext và DrawingVisual không? Tại sao không chỉ tái chế DrawingVisual? Bạn có cho phép Dispatcher bơm không? –

+0

Tôi biết đây là một câu hỏi cũ, tuy nhiên quá trình này có bị rò rỉ bộ nhớ hoặc xử lý không? Có vẻ như một bãi chứa hàng sẽ giúp đi đến gốc rễ của vấn đề? –

Trả lời

1

Đây là một bản vá cũ - và tôi cho rằng nó đã được đưa vào .NET 4.x - nhưng tôi không chắc lắm. Anyways - Bạn có thể cho nó một shot.

» Discussion & Bug Report

» .NET Patch(x86)

Các vấn đề liên quan