Проблемы при работе в Windows XP

Обсуждение Stimulsoft Reports.WPF
Ответить
kougener
Сообщения: 8
Зарегистрирован: 26 июл 2012, 12:51

Проблемы при работе в Windows XP

Сообщение kougener »

При проверке работоспособности программы на компьютере с Windows XP SP3 32bit возникают две ошибки:
1) При нажатии на кнопку Печать в окне просмотра отчёта появляется диалог выбора принтера. После выбора принтера и нажатия на кнопку Печать программа вылетает и выдаёт следующий стектрейс:

Код: Выделить всё

Описание. Приложение запросило завершение процесса через System.Environment.FailFast(сообщение строки).
Сообщение: Необратимая системная ошибка.
Стек:
   в System.Environment.FailFast(System.String)
   в MS.Internal.Invariant.FailFast(System.String, System.String)
   в MS.Internal.Invariant.Assert(Boolean)
   в MS.Internal.Printing.Configuration.WinSpoolPrinterCapabilities.GetArrayCapability[[System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](MS.Internal.Printing.Configuration.DeviceCapability, ReadArray`1<UInt32>, Int32)
   в MS.Internal.Printing.Configuration.WinSpoolPrinterCapabilities.GetArrayCapability[[System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](MS.Internal.Printing.Configuration.DeviceCapability, ReadArray`1<UInt32>)
   в MS.Internal.Printing.Configuration.WinSpoolPrinterCapabilities.get_MediaTypes()
   в MS.Internal.Printing.Configuration.FallbackPTProvider.GetPrintCapabilities(System.IO.MemoryStream)
   в System.Printing.PrintTicketManager.GetPrintCapabilitiesAsXml(System.Printing.PrintTicket)
   в System.Printing.PrintTicketManager.GetPrintCapabilities(System.Printing.PrintTicket)
   в System.Printing.PrintQueue.GetPrintCapabilities(System.Printing.PrintTicket)
   в System.Windows.Controls.PrintDialog.UpdatePrintableAreaSize()
   в System.Windows.Controls.PrintDialog.get_PrintableAreaWidth()
   в Stimulsoft.Report.Print.StiWpfPrintProvider.SetPrintTicketFromPage(System.Windows.Controls.PrintDialog, Stimulsoft.Report.Components.StiPage, Double ByRef, Double ByRef)
   в Stimulsoft.Report.Print.StiWpfPrintProvider.Print(System.Object, Boolean, Int32, Int32, Int32, System.String)
   в Stimulsoft.Report.StiReport.PrintWithWpfInternal(System.Object, Boolean, Int32, Int32, Int32, System.String)
   в Stimulsoft.Report.StiReport.PrintWithWpf(System.Object, Boolean, Int32, Int32, Int32, System.String)
   в Stimulsoft.Report.StiReport.PrintWithWpf()
   в Stimulsoft.Report.Viewer.StiWpfViewerControl.OnReportPrint(System.Windows.RoutedEventArgs)
   в Stimulsoft.Report.Viewer.StiWpfViewerControl.InvokeReportPrint()
   в Stimulsoft.Report.Viewer.StiWpfViewerControl.OnViewerCommand(System.Object, System.Windows.Input.ExecutedRoutedEventArgs)
   в System.Windows.Input.CommandBinding.OnExecuted(System.Object, System.Windows.Input.ExecutedRoutedEventArgs)
   в System.Windows.Input.CommandManager.ExecuteCommandBinding(System.Object, System.Windows.Input.ExecutedRoutedEventArgs, System.Windows.Input.CommandBinding)
   в System.Windows.Input.CommandManager.FindCommandBinding(System.Windows.Input.CommandBindingCollection, System.Object, System.Windows.RoutedEventArgs, System.Windows.Input.ICommand, Boolean)
   в System.Windows.Input.CommandManager.FindCommandBinding(System.Object, System.Windows.RoutedEventArgs, System.Windows.Input.ICommand, Boolean)
   в System.Windows.Input.CommandManager.OnExecuted(System.Object, System.Windows.Input.ExecutedRoutedEventArgs)
   в System.Windows.UIElement.OnExecutedThunk(System.Object, System.Windows.Input.ExecutedRoutedEventArgs)
   в System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.Input.RoutedCommand.ExecuteImpl(System.Object, System.Windows.IInputElement, Boolean)
   в System.Windows.Input.RoutedCommand.ExecuteCore(System.Object, System.Windows.IInputElement, Boolean)
   в MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(System.Windows.Input.ICommandSource, Boolean)
   в System.Windows.Controls.Primitives.ButtonBase.OnClick()
   в System.Windows.Controls.Button.OnClick()
   в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.UIElement.OnMouseLeftButtonUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject, System.Windows.RoutedEventArgs, System.Windows.RoutedEvent)
   в System.Windows.UIElement.OnMouseUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.Input.InputManager.ProcessStagingArea()
   в System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
   в System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
   в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawMouseActions, Int32, Int32, Int32)
   в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef)
   в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   в System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   в MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   в System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Window.ShowHelper(System.Object)
   в System.Windows.Window.Show()
   в System.Windows.Window.ShowDialog()
   в ResumeTable.MainWindow.PrintButton_Click_1(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
   в System.Windows.Controls.Primitives.ButtonBase.OnClick()
   в System.Windows.Controls.Button.OnClick()
   в Microsoft.Windows.Controls.Ribbon.RibbonButton.OnClick()
   в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.UIElement.OnMouseLeftButtonUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject, System.Windows.RoutedEventArgs, System.Windows.RoutedEvent)
   в System.Windows.UIElement.OnMouseUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs)
   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
   в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs)
   в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean)
   в System.Windows.Input.InputManager.ProcessStagingArea()
   в System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
   в System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
   в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawMouseActions, Int32, Int32, Int32)
   в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef)
   в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   в MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   в System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   в MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   в System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   в System.Windows.Threading.Dispatcher.Run()
   в System.Windows.Application.RunDispatcher(System.Object)
   в System.Windows.Application.RunInternal(System.Windows.Window)
   в System.Windows.Application.Run(System.Windows.Window)
   в XXX.App.Main()


Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".
2) Почему-то не подхватывается русская локализация - просмотрщик отчётов на английском языке. В семёрке же всё в порядке.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Проблемы при работе в Windows XP

Сообщение HighAley »

Здравствуйте.

1. Судя по стэку данная проблема возникает при обращении к драйверам принтера. Возникает ли эта ошибка при выборе любого принтера или в каком-то конкретном случае? Работает ли печать на этот принтер из других приложений? Сообщите, пожалуйста, модель принтера.

2. Подхватывается ли локализация при запуске дезайнера отчётов? Проверьте также есть ли папка Localization с файлами локализации там, откуда запускается просмоторщик.

Спасибо.
kougener
Сообщения: 8
Зарегистрирован: 26 июл 2012, 12:51

Re: Проблемы при работе в Windows XP

Сообщение kougener »

Модель принтера Canon MF3110, из других программ печатается нормально. Принтер установлен один, по этому проверить другие принтеры не представляется возможным на данной машине. Так как этот компьютер принадлежит нашему клиенту, свободный доступ туда нам ограничен. Если и получится установить удалённое соединение, то нам хотелось бы знать, что конкретно делать, чтобы найти и устранить ошибку.
Я вижу следующие варианты
- попробовать переустановить драйвер (но из других приложений проблем с печатью не возникает)
- установить виртуальный принтер, попробовать распечатать на нём.
Подскажите, что ещё можно попробовать, чтобы диагностировать и устранить ошибку?

По поводу второго вопроса, да, отсутствовала папка Localization. Но я её не смогу внедрить в проект развёртывания, я пользуюсь развёртыванием OneClick, там можно внедрять файлы в проект только в корень, на сколько мне известно. Есть какие-нибуть пути решения этого вопроса, например через внедрение xml в ресурсы сборки?

И ещё, появился третий вопрос. Уже на моём компьютере, где я разрабатываю, отчёты тоже перестали печататься. Причём и из дизайнера, и из просмотрщика. После выбора принтера окно с принтерами исчезает, но действий никаких не происходит. Ошибок в событиях тоже не появляется. На всх принтерах одно и то же, даже на виртуальных. С чем это может быть связано и как можно решить эту проблему? Система Win 7 64 bit.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Проблемы при работе в Windows XP

Сообщение HighAley »

kougener писал(а):Модель принтера Canon MF3110, из других программ печатается нормально. Принтер установлен один, по этому проверить другие принтеры не представляется возможным на данной машине. Так как этот компьютер принадлежит нашему клиенту, свободный доступ туда нам ограничен. Если и получится установить удалённое соединение, то нам хотелось бы знать, что конкретно делать, чтобы найти и устранить ошибку.
Я вижу следующие варианты
- попробовать переустановить драйвер (но из других приложений проблем с печатью не возникает)
- установить виртуальный принтер, попробовать распечатать на нём.
Подскажите, что ещё можно попробовать, чтобы диагностировать и устранить ошибку?

По поводу второго вопроса, да, отсутствовала папка Localization. Но я её не смогу внедрить в проект развёртывания, я пользуюсь развёртыванием OneClick, там можно внедрять файлы в проект только в корень, на сколько мне известно. Есть какие-нибуть пути решения этого вопроса, например через внедрение xml в ресурсы сборки?
Попробуйте использовать следующее свойство Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization для задания папки с файлами локализации.
kougener писал(а):И ещё, появился третий вопрос. Уже на моём компьютере, где я разрабатываю, отчёты тоже перестали печататься. Причём и из дизайнера, и из просмотрщика. После выбора принтера окно с принтерами исчезает, но действий никаких не происходит. Ошибок в событиях тоже не появляется. На всх принтерах одно и то же, даже на виртуальных. С чем это может быть связано и как можно решить эту проблему? Система Win 7 64 bit.
Проверять надо печать в WPF приложении. Попробуйте установить нашу WinForms Demo. Если печать работает, то попробуйте печать из WFP Demo. То же тамое можете проверить на машине клиента.

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Проблемы при работе в Windows XP

Сообщение HighAley »

Здравствуйте.

Существует исправление от Microsoft http://www.microsoft.com/en-us/download ... n&id=11816
Сообщите, пожалуйста, если это исправит вашу проблему.

Спасибо.
Ответить