2011-01-17 9 views
15

केस का उपयोग करें: मैं वेब संदर्भ में छवियों पर गतिशील रूप से ओवरले टेक्स्ट करने के लिए WPF का उपयोग कर रहा हूं।System.Windows.Media.DrawingVisual.RenderOpen() एक समय के बाद त्रुटि

समाधान: मैं एक DrawingVisual (एक using बयान में लिपटे) से एक DrawingContext उपयोग कर रहा हूँ मूल बिटमैप आकर्षित और पाठ ओवरले करने के लिए।

समस्या: कुछ हजार के बाद का अनुरोध करता है [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 ... 

अस्थायी ठीक: इस के लिए केवल ठीक सर्वर पर आईआईएस अनुप्रयोग पूल रीसायकल है जो कुछ घंटों के लिए समस्या को हल करता है।

प्रश्न: किसी के पास इस मुद्दे (लीक, थ्रेडिंग, अप्रबंधित कोड इत्यादि) के कारण पर विचार है? क्या ड्राइंग विज़ुअल से बचने वाली छवि पर पाठ प्राप्त करने का कोई अन्य तरीका है? शायद बिटमैप को ज्यामिति लिखना और बिटमैप्स को ओवरले करना?

+1

मैं एक ऐसी ही समस्या आ रही है: http://stackoverflow.com/questions/5195808/wpf-formattedtext-the-system-cannot-find-the-file -स्पेस्पीड-अपवाद-इन-ए-सर्व – Aligned

+0

क्या आप ड्रॉइंग कॉन्टेक्स्ट और ड्रॉइंग विज़ुअल प्राप्त करने के तरीके के बारे में एक कोड स्निपेट साझा कर सकते हैं? क्यों न केवल DrawingVisual रीसायकल? क्या आप डिस्पैचर को पंप करने की इजाजत दे रहे हैं? –

+0

मुझे पता है कि यह एक पुराना सवाल है, हालांकि प्रक्रिया रिसाव स्मृति या हैंडल करता है? ऐसा लगता है कि एक लटका डंप समस्या की जड़ तक पहुंचने में मदद करेगा? –

उत्तर

1

यह एक पुराना पैच है - और मुझे लगता है कि इसे .NET 4.x में शामिल किया गया था - लेकिन मुझे इतना यकीन नहीं है। वैसे भी - आप इसे एक शॉट दे सकते हैं।

» Discussion & Bug Report

» .NET Patch(x86)

संबंधित मुद्दे