使用例:Webコンテキスト内の画像にテキストを動的にオーバーレイするためにWPFを使用しています。時間の後にSystem.Windows.Media.DrawingVisual.RenderOpen()エラーが発生する
ソリューション: は、私は元のビットマップとオーバーレイテキストを描画する(using
文で包まれた)DrawingVisual
から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 ...
温度修正:このための唯一の修正は、どのサーバー上のIISアプリケーションプールをリサイクルすることです問題を数時間修正します。
質問:誰でもこの問題(リーク、スレッディング、アンマネージドコードなど)の原因について考えていますか?描画ビジュアルを避けてイメージにテキストを表示する方法はありますか?おそらくジオメトリをビットマップに書き込んで、ビットマップを直接オーバーレイしますか?
私は同様の問題を抱えている:http://stackoverflow.com/questions/5195808/wpf-formattedtext-the-system-cannot-find-the-file -specified-exception-in-a-serv – Aligned
DrawingContextとDrawingVisualの取得方法のコードスニペットを共有できますか?なぜDrawingVisualをリサイクルしないのですか?あなたはディスパッチャにポンプをかけさせるのですか? –
これは古い質問ですが、プロセスにメモリやハンドルがリークしますか?おそらくハングダンプが問題の根本に辿り着くのを助けるだろうか? –