Как перехватить эксепшен при формировании превью?
Re: Как перехватить эксепшен при формировании превью?
Здравствуйте.
Вы смотрели журнал событий Windows?
Может там будет больше информации по ошибке.
Спасибо.
Вы смотрели журнал событий Windows?
Может там будет больше информации по ошибке.
Спасибо.
-
- Сообщения: 24
- Зарегистрирован: 21 июн 2006, 15:59
- Откуда: Russia, Moscow
- Контактная информация:
Re: Как перехватить эксепшен при формировании превью?
Там тоже ничего нет: http://www.printstore.ru/forum/viewtopi ... =5011#5011
Любой путь начинается с первого шага
Re: Как перехватить эксепшен при формировании превью?
Здравствуйте.
Взглянули на проблему свежим взглядом.
Красный крест вместо содержимого контрола отображается системой (Net Framework) в том случае, если во время отрисовки контрола произошёл exception.
Т.е. проблема не в рендеринге отчёта, а где-то во вьювере при отображении уже построенного отчета.
Это подтверждается и тем, что в логе ошибок рендеринга нет.
Далее, обратили внимание на следующие цитаты:
Попробуйте пожалуйста воспроизвести проблему при изменении размеров окна вьювера или при изменении разрешения экрана.
Спасибо.
Взглянули на проблему свежим взглядом.
Красный крест вместо содержимого контрола отображается системой (Net Framework) в том случае, если во время отрисовки контрола произошёл exception.
Т.е. проблема не в рендеринге отчёта, а где-то во вьювере при отображении уже построенного отчета.
Это подтверждается и тем, что в логе ошибок рендеринга нет.
Далее, обратили внимание на следующие цитаты:
У меня отчет открывается нормально если уменьшить у проблемного отчета масштаб до 54% и ниже.
То в следующий раз отчет открывается правильно. с масштабом 54%
Возможно проблема проявляется при каком-то определенном размере окна вьювера.....
5. Вероятность возникновения ошибки: 0%
6. Разрешение 1920х1080
....
5. Вероятность возникновения ошибки: 100% при масштабе больше 75%
6. Разрешение 1280х1024
Попробуйте пожалуйста воспроизвести проблему при изменении размеров окна вьювера или при изменении разрешения экрана.
Спасибо.
-
- Сообщения: 24
- Зарегистрирован: 21 июн 2006, 15:59
- Откуда: Russia, Moscow
- Контактная информация:
Re: Как перехватить эксепшен при формировании превью?
Эксперименты с разными разрешениями/размерами экрана на стабильно работающей системе ничего не дали.
Покопался в настройках IntelliTrace и в итоге удалось воспроизвести ошибку. Поймал два разных эксепшена:
Покопался в настройках IntelliTrace и в итоге удалось воспроизвести ошибку. Поймал два разных эксепшена:
Код: Выделить всё
System.NullReferenceException: Object reference not set to an instance of an object.
at Stimulsoft.Report.Viewer.StiViewerControl.GetPageRect(StiPageParamView view)
at Stimulsoft.Report.Viewer.StiViewerControl.view_MouseMove(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseMove(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseMove(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Код: Выделить всё
at Stimulsoft.Report.Viewer.StiViewerControl.GetPageParamView(StiComponent component)
at Stimulsoft.Report.Viewer.StiViewerControl.view_MouseMove(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseMove(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseMove(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at PrintStore.Program.Main(String[] args) in D:\Projects\PrintStore\Current\PrintStore\Program.cs:line 41
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Любой путь начинается с первого шага
Re: Как перехватить эксепшен при формировании превью?
Здравствуйте.
Уточните пожалуйста, вы смогли воспроизвести проблему именно на вашем компьютере?
Можете ли описать как воспроизвести эту проблему у нас? На исходниках эту проблему решить гораздо проще и быстрее.
Также мы можем вам выслать специально собранный билд в Demo режиме со включенной отладочной информацией, чтобы определить точные строки, где происходят ошибки.
Спасибо.
Ошибки возникают в простых методах, но непонятно, какие именно свойства приходят нулевыми.Michael писал(а):Эксперименты с разными разрешениями/размерами экрана на стабильно работающей системе ничего не дали.
Покопался в настройках IntelliTrace и в итоге удалось воспроизвести ошибку. Поймал два разных эксепшена:
Уточните пожалуйста, вы смогли воспроизвести проблему именно на вашем компьютере?
Можете ли описать как воспроизвести эту проблему у нас? На исходниках эту проблему решить гораздо проще и быстрее.
Также мы можем вам выслать специально собранный билд в Demo режиме со включенной отладочной информацией, чтобы определить точные строки, где происходят ошибки.
Спасибо.
-
- Сообщения: 24
- Зарегистрирован: 21 июн 2006, 15:59
- Откуда: Russia, Moscow
- Контактная информация:
Re: Как перехватить эксепшен при формировании превью?
Я сейчас делаю code review модуля управления отчетами. Постараюсь вычленить код, приводящий к ошибке, и собрать из этого отдельный исходник. Ну или найду ошибку в своем коде. Просто эту часть программы писал другой человек несколько лет назад, поэтому сейчас нет возможности быстро в этом коде сориентироваться.
Любой путь начинается с первого шага
Re: Как перехватить эксепшен при формировании превью?
Здравствуйте.
Мы ждём любой информации от вас, которая поможет решить проблему.
Спасибо.
Мы ждём любой информации от вас, которая поможет решить проблему.
Спасибо.
-
- Сообщения: 24
- Зарегистрирован: 21 июн 2006, 15:59
- Откуда: Russia, Moscow
- Контактная информация:
Re: Как перехватить эксепшен при формировании превью?
Проблему устранил. По своему старому коду сделал много исправлений, даже не понял, что именно повлияло.
На всякий случай - мне сильно помогла возможность записи в IntelliTrace. Особенно это помогает с многопоточностью. После отработки программы открываешь созданный файл и все эксепшены как на ладони.
На всякий случай - мне сильно помогла возможность записи в IntelliTrace. Особенно это помогает с многопоточностью. После отработки программы открываешь созданный файл и все эксепшены как на ладони.
Любой путь начинается с первого шага
Re: Как перехватить эксепшен при формировании превью?
Здравствуйте.
Отлично! IntelliTrace и создано для решения подобных проблем.
Обращайтесь, если ещё нужна будет помощь.
Спасибо.
Отлично! IntelliTrace и создано для решения подобных проблем.
Обращайтесь, если ещё нужна будет помощь.
Спасибо.