Esent LogFileCorrupt-Exception
Я использую библиотеку ManagedEsent для чтения данных из кэша Internet Explorer с помощью файла WebCacheV01.dat. Я получаю исключение ниже каждый раз, несмотря на изменение WebCacheV01.dat по отдельности с разных машин.
Microsoft.Isam.Esent.Interop.EsentLogFileCorruptException: "Файл журнала поврежден"
Кто-нибудь еще сталкивался с этим раньше? Как ты это сделал? Я приложил скриншот, чтобы показать, где выбрасывается исключение.
1 ответ
Решение
Здесь много чего происходит:
- Создание
Instance
дорогой. Это нужно сделать один раз и использовать повторно. Каждый раз, когда вы создаетеInstance
он читает мегабайты файлов журнала, чтобы убедиться, что все было очищено. Session
не слишком дорого Если у вас есть приложение серверного масштаба, вам следует повторно использовать сеансы, но в небольшом масштабе это не имеет большого значения.- Вы не устанавливаете параметры в
Instance
, например, путь к файлу журнала, префикс файла журнала (я думаю, что егоv01
для веб-кэша?) - Проверьте средство просмотра событий приложения Windows, ища категорию
ESENT
События. Точное местоположение файла журнала должно присутствовать в записях журнала событий. - Прямой доступ к этим файлам не поддерживается. Если вы измените файлы, веб-кеш может работать неправильно.
- Если это для судебно-медицинской экспертизы, то откройте дело с MS и вовлеките людей, занимающихся судебной экспертизой. Должен быть канал, чтобы помочь сотрудникам правоохранительных органов выполнять свою работу.
- Вы упомянули разные машины. Если вы копируете файлы с другого компьютера, то он может быть в другом формате, который старая версия Windows просто не может понять.
esent.dll
Можно читать старые файлы, но не файлы из будущего.
Надеюсь, это поможет,
-Мартин