none
Имя сбойного модуля: KERNELBASE.dll Код исключения: 0xe0434352

    Вопрос

  • Недавно обновился с windows 8 pro x64 до windows 8.1 pro x64.

    После чего перестало работать приложение нашего разработчика, написанное на C#. Точнее окошко авторизации входа в программу появляется я успешно ввожу логин и пароль, нажимаю вход и "прекращена работа программы".

    А вот и сами логи:

    Имя сбойного приложения: SMOExpert.MainUnit.exe, версия: 1.0.3.37, метка времени: 0x595deffd
    Имя сбойного модуля: KERNELBASE.dll, версия: 6.3.9600.18666, метка времени: 0x58f32841
    Код исключения: 0xe0434352
    Смещение ошибки: 0x00015608
    Идентификатор сбойного процесса: 0x1424
    Время запуска сбойного приложения: 0x01d2f638c6841c20
    Путь сбойного приложения: C:\Users\ast\AppData\Local\Apps\2.0\ZABH1ZYP.CGM\TDD5NKYK.440\smoe..tion_a60bea3ab5972338_0001.0000_ba908d596bc387e7\SMOExpert.MainUnit.exe
    Путь сбойного модуля: C:\WINDOWS\SYSTEM32\KERNELBASE.dll
    Идентификатор отчета: 4afc9b10-622c-11e7-be7c-a2fad8e3b5e3
    Полное имя сбойного пакета: 
    Код приложения, связанного со сбойным пакетом: 

    Приложение: SMOExpert.MainUnit.exe
    Версия платформы: v4.0.30319
    Описание. Процесс был завершен из-за необработанного исключения.
    Сведения об исключении: System.OutOfMemoryException
       в System.Windows.Media.Imaging.TransformedBitmap.FinalizeCreation()
       в System.Windows.Media.Imaging.TransformedBitmap..ctor(System.Windows.Media.Imaging.BitmapSource, System.Windows.Media.Transform)
       в DevExpress.Xpf.Core.DXWindow.PatchIcon(System.Object)
       в DevExpress.Xpf.Core.DXWindow.OnIconChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
       в System.Windows.PropertyChangedCallback.Invoke(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
       в System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
       в System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
       в System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
       в System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
       в System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean)
       в System.Windows.Baml2006.WpfMemberInvoker.SetValue(System.Object, System.Object)
       в MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Xaml.XamlMember, System.Object, System.Object)
       в MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object)
       в MS.Internal.Xaml.Runtime.PartialTrustTolerantRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object)
       в System.Xaml.XamlObjectWriter.Logic_ApplyPropertyValue(MS.Internal.Xaml.Context.ObjectWriterContext, System.Xaml.XamlMember, System.Object, Boolean)
       в System.Xaml.XamlObjectWriter.Logic_DoAssignmentToParentProperty(MS.Internal.Xaml.Context.ObjectWriterContext)
       в System.Xaml.XamlObjectWriter.Logic_AssignProvidedValue(MS.Internal.Xaml.Context.ObjectWriterContext)
       в System.Xaml.XamlObjectWriter.WriteEndMember()
       в System.Xaml.XamlWriter.WriteNode(System.Xaml.XamlReader)
       в System.Windows.Markup.WpfXamlLoader.TransformNodes(System.Xaml.XamlReader, System.Xaml.XamlObjectWriter, Boolean, Boolean, Boolean, System.Xaml.IXamlLineInfo, System.Xaml.IXamlLineInfoConsumer, MS.Internal.Xaml.Context.XamlContextStack`1<System.Windows.Markup.WpfXamlFrame>, System.Windows.Markup.IStyleConnector)
       в System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
       в System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
       в System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
       в System.Windows.Application.LoadComponent(System.Object, System.Uri)
       в SMOExpert.MainWindow.InitializeComponent()
       в SMOExpert.MainWindow..ctor()
       в SMOExpert.MainUnit.LoginForm.btnLogin_Click(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()
       в DevExpress.Xpf.Core.SimpleButton.OnClick()
       в System.Windows.Controls.Primitives.ButtonBase.OnAccessKey(System.Windows.Input.AccessKeyEventArgs)
       в System.Windows.Input.AccessKeyManager.ProcessKey(System.Collections.Generic.List`1<System.Windows.IInputElement>, System.String, Boolean, Boolean)
       в System.Windows.Input.AccessKeyManager.ProcessKeyForSender(System.Object, System.String, Boolean, Boolean)
       в System.Windows.Input.AccessKeyManager.OnKeyDown(System.Windows.Input.KeyEventArgs)
       в System.Windows.Input.AccessKeyManager.PostProcessInput(System.Object, System.Windows.Input.ProcessInputEventArgs)
       в System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(System.Windows.Input.ProcessInputEventHandler, System.Windows.Input.ProcessInputEventArgs)
       в 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.HwndKeyboardInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawKeyboardActions, Int32, Boolean, Boolean, Int32)
       в System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       в System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(System.Windows.Interop.MSG ByRef, System.Windows.Input.ModifierKeys)
       в System.Windows.Interop.HwndSource.OnPreprocessMessage(System.Object)
       в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
       в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
       в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
       в System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate, System.Object)
       в System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       в System.Windows.Interop.HwndSource+WeakEventPreprocessMessage.OnPreprocessMessage(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       в System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(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.Application.RunDispatcher(System.Object)
       в System.Windows.Application.RunInternal(System.Windows.Window)
       в System.Windows.Application.Run(System.Windows.Window)
       в System.Windows.Application.Run()
       в SMOExpert.App.Main()

    Раньше работало все нормально. На других компьютерах под управлением windows 7, 8.1, 10 программа работает нормально. И у меня раньше работало нормально на windows 8.1 и на windows 10, но недавно пришлось переустановить win 8 (так как 10-ка выдала синий экран смерти, но это другая история) и обновиться до 8.1. 

    Теперь что я делал:

    1. Все обновления установлены.
    2. 2 этих метода попробовал:

    Method 1: System File checker (SFC) scan is done to check if there are any corrupted system files that could be causing this issue. Kindly follow the below given steps:

    1. Press Windows key + X, select Command prompt (Admin) to bring up elevated Command prompt.
    2. In Command prompt type sfc /scannow and press enter.
    3. Restart the computer.

    Method 2: You can try re-registering kernelbase.dll and check.

    1. Press Windows Key + X and click on Command Prompt (Admin)
    2. Type regsvr32 KERNELBASE.dll and hit Enter.
    3. Restart your computer and check.

    И этот совет тоже испробовал.

    Использование системы обслуживания образов развертывания и управления ими (DISM)
    1. В поле поиска на панели задач введите командная строка, щелкните правой кнопкой мыши (либо нажмите и удерживайте) пункт Командная строка, а затем выберите Запуск от имени администратора > Да.
    2. Введите в командной строке dism.exe /Online /Cleanup-image /Restorehealth (обратите внимание на пробел между "dism.exe", "/" и каждым параметром (/)).
    3. Если DISM найдет и заменит поврежденные файлы, перезагрузите компьютер и посмотрите, стал ли он работать быстрее.

                   Первый не помог показал что нет ошибок, второй не позволяет регистрировать выдает ошибку  Модуль "C:\windows\system32\KERNELBASE.dll" загружен, но точка входа DllRegisterServer не найдена. Проверьте что "C:\windows\system32\KERNELBASE.dll" является правильным файлом DLL или OCX и повторите попытку. Третий способ тоже не помог.

    Некоторые товарищи писали что причина в том что файл битый или система не может найти этот файл. Но файл на месте. Я даже скопировал такой же у коллеги с такой же ОС 8.1 x64 и заменил. Толку нет та же ошибка. Объясните пожалуйста есть ли на самом деле решение без отката системы, потому как у меня не имеется точка восстановления до версии windows 8.


    • Изменено astoris 13 июля 2017 г. 6:31
    13 июля 2017 г. 6:16

Все ответы

  • Скармливать библиотеку KERNELBASE.dll регистратору COM-объектов бессмысленно (в ней нет саморегистрирующихся COM-объектов). Проблема, я думаю, вообще не в ней. По стеку видно, что программа падает с OutOfMemory exception при попытке работы с графикой средствами WPF.

    Когда что-то ломается после обновления, это значит обновление существенно поменяло в системе какой-то используемый компонент, либо обновление прошло некорректно. В первом случае, приложение нужно будет переписывать, чтобы оно работало на Windows 8.1. Во втором случае, переустановка системы должна помочь.

    13 июля 2017 г. 7:47
  • Переустановите (удалите и поставьте вручную) текущую версию .NET Framework, скорее всего поможет. Или установите более новую если не установлена самая последняя версия (на текущий момент 4.7).

    Сделаем содержимое сообщества лучше, вместе!

    13 июля 2017 г. 13:09
    Модератор
  • Я тоже думаю мне поможет. Однако версия у меня последняя, а вот удалить ее не могу. Пытался через утилиту https://blogs.msdn.microsoft.com/astebner/2008/08/28/net-framework-cleanup-tool-users-guide/ , однако после того как программа говорит что все было было успешно, установить заново тот же NET Framework 4.7 не могу, пишет что уже такая версия или более новая установлена. Я пытался и все версии разом удалить и отдельно 4.7 - результата нет. В программы и компоненты нет элементов Net Framework.

    13 июля 2017 г. 14:43
  • Встроенную удалить не получится (для Win 8.1 это .NET 4.5.1). Как определить версию посмотрите тут. Если вы устанавливали (или она была обновлена) более новую версию, то удалить её возможно (точнее заменить на раннюю версию так как это in-place upgrades в случае .NET 4.x).

    Сделаем содержимое сообщества лучше, вместе!

    13 июля 2017 г. 14:59
    Модератор
  • Для чистоты эксперимента только что установил .NET 4.6 на VM с чистой Win 8.1:

    Из ичсточника: KB3045563

    Please see the Knowledge Base Article KB 3045557 for more information. When you install this package you will see following packages/updates installed as per operating system: • On Windows Vista SP2 / Windows 7 SP1/ Windows Server 2008 SP2 / Windows Server 2008 R2 SP1, you will see the Microsoft .NET Framework 4.6 as an installed product under Programs and Features in Control Panel. • On Windows 8 / Windows Server 2012 you can find this as Update for Microsoft Windows (KB3045562) under Installed Updates in Control Panel. • On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3045563) under Installed Updates in Control Panel. This version of the .NET Framework runs side-by-side with the .NET Framework 3.5 SP1 and earlier versions, but performs an in-place update for the .NET Framework 4, .NET Framework 4.5, .NET Framework 4.5.1 and .NET Framework 4.5.2. For important information about this release, see the .NET


    Сделаем содержимое сообщества лучше, вместе!

    13 июля 2017 г. 15:08
    Модератор