Короче, неделя задалась не лучшая: каким-то образом у меня начали сыпаться ошибки “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
- Добавляем эту страницу в закладки и перезагружаемся в безопасный режим с поддержкой сетевых драйверов (Еще способ).
- Открываем снова страницу моего крутого блога и качаем .NET Framework Cleanup Tool c моего сервера или с MSDN (на случай, если ссыкло)
- Запускаем утилиту и тыкаем на Cleanup Now
- Идем на кухню и делаем чай или можно отлично засесть в туалете с телефоном в руках и читать дурацкие паблики в вк и т.д.
- Возвращаемся – если еще не удалилось – идем обратно в толчком и дочитываем паблики. Повторяем, пока не удалится.
- Удалилось? ОК. Перезагружаемся в обычный режим.
- Теперь скачиваем .NET Framework v4.0 и устанавливаем, скрестив пальцы, потому что этот гей очень любит выпендриваться
- Проверяем – все ли ок с приложениями, которые не работали и есть ли в логах ошибки. Если все в целом ОК, можно будет обновиться до .NET Framework 4.5, но не в коем случае не ставить сразу 4.5! Сначала надо поставить версию 4.
Способ 2: Если способ 1 не помог
- Можно проделать первый способ и оставить .NET в установленном состоянии. Далее нужно на сломанной машине установить все обновления, касающиеся .NET (можно просто установить все обязательные обновления)
- Предупреждаю – способ только для джедаев, потому что сила дже-дай – это сила вселенной. В общем, муторный способ.
- Если у вас есть второй комп или ноутбук, на котором тоже установлена такая же система Windows с такой же архитектурой (32 или 64 бит), то третий пунки можно пропустить. А если у вас установлена Windows 7 x64, то можно попробовать скачать мой подготовленный пакет и перейти к шагу 7
- Скачиваем VirtualBox или VMWare Player и устанавливаем на машину такой же Windows, который стоит на сломанной тачке.
- Ставим обновления для новый Windows так, чтобы они совпадали с обновлениями на локальной тачке, хотя в целом можно просто на новой винде поставить ВСЕ обновления (разве что кроме рекомендуемых).
- После установки обновлений перезагружаем виртуальную машину, идем в папку C:\Windows\Microsoft.NET и архивируем ее в RAR или ZIP или просто копируем папку себе на локальную машину, например в Мои документы\recover, чтобы получилось Мои документы\recover\Microsoft.NET.
- Распаковываем или копируем БЕЗ ЗАМЕНЫ все файлы из папки recover\Microsoft.NET в папку C:\Windows\Microsoft.NET и перезагружаем комп.
- Все должно теперь работать, ну а если уж не работает – придется переставлять систему, я понятия не имею, что еще можно сделать в этом случае.
Опишу свою конкретную проблему: у меня вылетал часто 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 секунд.
P.S: Отдельное спасибо Nvidia за то, что добавили в свое приложение ЛОГИ, которые помогли мне отследить ошибку. Если вы разработчик, то помните – ЛОГИ – это хорошо! Чем больше логов – тем больше логов.