Блог P1ratRuleZZZ

Позбавляємося від Application error kernelbase.dll і лікуємо .NET Framework

Коротше, тиждень задалася не найкраща: каким-то образом у меня начали сыпаться ошибки “Application error kernelbase.dll” (ім'я додатки не несе важливості)

Имя сбойного приложения: Connect.Service.ContentService.exe, версия: 3.0.84.0, отметка времени: 0x4f344200
Имя сбойного модуля: KERNELBASE.dll, версия: 6.1.7601.18798, отметка времени 0x5507b485
Код исключения: 0xe0434352
Смещение ошибки: 0x0000c42d
Идентификатор сбойного процесса: 0x8e8
Время запуска сбойного приложения: 0x01d079586563378c
Путь сбойного приложения: C:\Program Files (x86)\Autodesk\Content Service\Connect.Service.ContentService.exe
Путь сбойного модуля: C:\Windows\syswow64\KERNELBASE.dll
Код отчета: a327902f-e54b-11e4-b131-240a649fc3bc

Чого я тільки не пробував! Советовали переустановить полностью .NET – сначала снести, а потім встановити, але в мене не спрацювало. У загальному, я опишу цей спосіб, оскільки він є досить простим на відміну від того, який застосував я.

Спосіб 1

  1. Додаємо цю сторінку в закладки і перезавантажуємося в безпечний режим з підтримкою мережевих драйверів (Ще спосіб).
  2. Відкриваємо знову сторінку мого крутого блогу і качаємо .NET Framework Cleanup Tool c мого сервера або з MSDN (на випадок, якщо ссикло)
  3. Запускаємо утиліту і тикаємо на Cleanup Now
  4. Йдемо на кухню і робимо чай або можна відмінно засісти в туалеті з телефоном в руках і читати дурні паблік в вк і т.д.
  5. Возвращаемся – если еще не удалилось – идем обратно в толчком и дочитываем паблики. Повторюємо, поки не віддалиться.
  6. Віддалилося? ОК. Перезавантажуємося в звичайний режим.
  7. Тепер завантажуємо .NET Framework v4.0 і встановлюємо, схрестивши пальці, тому що цей гей дуже любить випендрюватися
  8. Проверяем – все ли ок с приложениями, які не працювали і чи є в логах помилки. Якщо все в цілому ОК, можна буде оновитися до .NET Framework 4.5, але не в якому разі не ставити відразу 4.5! Спочатку треба поставити версію 4.

Спосіб 2: Якщо спосіб 1 не допоміг

  1. Можна виконати перший спосіб і залишити .NET у встановленому стані. Далі потрібно на зламаній машині встановити всі оновлення, стосуються .NET (можна просто встановити всі обов'язкові поновлення)
  2. Предупреждаю – способ только для джедаев, потому что сила дже-дай – это сила вселенной. У загальному, тоскний спосіб.
  3. Якщо у вас є другий комп або ноутбук, на якому теж встановлена ​​така ж система Windows з такою ж архітектурою (32 або 64 біт), то третій пунк можна пропустити. А якщо у вас встановлена ​​Windows 7 x64, то можна спробувати завантажити мій підготовлений пакет і перейти до кроку 7
  4. Викачуємо VirtualBox або VMWare Player і встановлюємо на машину такий же Windows, який стоїть на зламаній тачці.
  5. Ставимо оновлення для новий Windows так, щоб вони збігалися з оновленнями на локальній тачці, хоча в цілому можна просто на новій винде поставити ВСЕ поновлення (хіба що окрім рекомендованих).
  6. Після установки оновлень перезавантажуємо віртуальну машину, йдемо в папку C:\Windows Microsoft.NET і архівуємо її в RAR або ZIP або просто копіюємо папку собі на локальну машину, наприклад в Мої документи recover, щоб вийшло Мої документи recover Microsoft.NET.
  7. Розпаковуємо або копіюємо БЕЗ ЗАМІНИ всі файли з папки recover Microsoft.NET в папку C:\Windows Microsoft.NET і перезавантажуємо комп.
  8. Все має тепер працювати, ну а если уж не работает – придется переставлять систему, я поняття не маю, що ще можна зробити в цьому випадку.

Опишу свою конкретну проблему: у мене вилітав часто Skype (може, еще и не перестал вылетать – кто его знает!) и не открывался GEForce Experience – выдавал мне ошибку “Обнаружена ошибка. Приложение будет закрыто” и вот такую вот ересь я нашел в логах

Не удается загрузить один или более запрошенных типов. Обратитесь к свойству LoaderExceptions для получения дополнительных сведений.
System.Reflection.ReflectionTypeLoadException
 в System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
 в System.Reflection.RuntimeModule.GetTypes()
 в System.Reflection.Assembly.GetTypes()
 в System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog()
 в System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetEnumerator()
 в System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
 в Microsoft.Practices.Prism.MefExtensions.DefaultPrismServiceRegistrar.GetRequiredPrismPartsToRegister(AggregateCatalog aggregateCatalog)
 в Microsoft.Practices.Prism.MefExtensions.DefaultPrismServiceRegistrar.RegisterRequiredPrismServicesIfMissing(AggregateCatalog aggregateCatalog)
 в Microsoft.Practices.Prism.MefExtensions.MefBootstrapper.RegisterDefaultTypesIfMissing()
 в Microsoft.Practices.Prism.MefExtensions.MefBootstrapper.Run(Boolean runWithDefaultConfiguration)
 в Flame.Core.FlameBootstrapper`3.Run(Boolean runWithDefaultConfiguration)
 в Flame.Core.FlameApplicationGovernor`4.RunOnce()
 в Flame.Core.FlameApplicationGovernor`4.Application_Startup(Object sender, StartupEventArgs e)
 в System.Windows.Application.OnStartup(StartupEventArgs e)
 в GFEClient.App.OnStartup(StartupEventArgs e)
 в System.Windows.Application.<.ctor>b__1(Object unused)
 в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
 в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

Мені допоміг саме другий спосіб. Перший не давав особливо нічого за два дні мук, в підсумку вирішилося за 10 секунд.

PS: Окреме спасибі Nvidia за те, що додали в свій додаток Список, які допомогли мені відстежити помилку. Якщо ви розробник, то помните – ЛОГИ – это хорошо! Чем больше логов – тем больше логов.

Exit mobile version