Application ErrorSystem.InvalidOperationException: в потоке отрисовки произошла неопределенная ошибка

Наше приложение Framework 3.5 sp1, WPF зависает случайным образом с указанным ниже исключением на машинах XP и win 7. У нас есть несколько сотен пользователей, и это происходит случайно для всех, и мы не видели какой-либо закономерности в возникновении исключения. Мы много искали, есть выпуск патча 3.5 от MS, который также включен в 3.5 sp1, который должен исправить эту проблему, но, как вы видите, это все еще происходит с нами.

ERROR 2012-12-10 08:56:12,348[UI]: Host : Application ErrorSystem.InvalidOperationException: An unspecified error occurred on the render thread.
   at System.Windows.Media.MediaContext.NotifyPartitionIsZombie(Int32 failureCode)
   at System.Windows.Media.MediaContext.NotifyChannelMessage()
   at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) 

В наших журналах мы видим, что нижеприведенное исключение регистрируется 10-15 раз повторно, прежде чем будет выбрано указанное выше исключение Renderthread. Мы также замечаем короткий период бездействия (10-15 минут) в журналах, прежде чем начнется появление исключения.

ERROR 2012-12-04 10:38:30,854[UI]: Host : Application ErrorSystem.Runtime.InteropServices.COMException (0x88980406): Exception from HRESULT: 0x88980406
   at System.Windows.Media.Composition.DUCE.Channel.SyncFlush()
   at System.Windows.Media.Composition.DUCE.CompositionTarget.UpdateWindowSettings(ResourceHandle hCompositionTarget, RECT windowRect, Color colorKey, Single constantAlpha, MILWindowLayerType windowLayerType, MILTransparencyFlags transparencyMode, Boolean isChild, Boolean isRTL, Boolean renderingEnabled, Int32 disableCookie, Channel channel)
   at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget, Nullable`1 channelSet)
   at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget)
   at System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr lParam)
   at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

Перезапуск приложения устраняет проблему. Однако этот вопрос быстро становится для нас приоритетным. Был бы очень признателен за любые указатели, которые помогут разобраться в этой проблеме.


person praskris    schedule 11.12.2012    source источник
comment
у вас есть настоящий фрагмент кода, который вы можете показать / поделиться ..?   -  person MethodMan    schedule 11.12.2012
comment
@DJ KRAZE - На самом деле фрагмента кода нет. Мы не уверены, что вызывает это исключение, оно не обрабатывается и возникает случайным образом.   -  person praskris    schedule 11.12.2012
comment
@ Джаред Харли - спасибо за исправление форматирования.   -  person praskris    schedule 11.12.2012
comment
Это будет что-то сложное ...   -  person MethodMan    schedule 11.12.2012
comment
@DJ KRAZE - Нам тоже было непросто отследить. Если есть дополнительная информация, которую я могу предоставить, я буду рад это сделать.   -  person praskris    schedule 11.12.2012
comment
Просто вопрос или два: ErrorSystem.InvalidOperationException, это настраиваемое исключение, которое вы создали? Если да, то проверяли, куда его бросают? А вы пробовали прослушивать необработанное исключение диспетчера в приложении?   -  person Willem Toerien    schedule 16.07.2013


Ответы (1)


Это была отвлекающая манера. Эта проблема была решена командой инженеров. Наши пользователи использовали виртуальные машины и подключались к ним с помощью Citrix. Эта проблема была вызвана обратной бесшовной настройкой, которую Citrix допускает для использования cpu / gpu клиентского компьютера для разгрузки графики и рендеринга.

person praskris    schedule 08.11.2013