Esent LogFileCorrupt-异常

Esent LogFileCorrupt-Exception

我正在使用 ManagedEsent LibraryInternet Explorer 的 缓存中使用 WebCacheV01.dat 文件读取数据。尽管从不同的机器分别更改 WebCacheV01.dat ,但我每次都会收到以下异常。

Microsoft.Isam.Esent.Interop.EsentLogFileCorruptException: 'Log file is corrupt'

有没有其他人遇到过这种情况?你是怎么做到的?我已附上屏幕截图以显示抛出异常的位置。

这里发生了很多事情:

  • 创建 Instance 非常昂贵。它应该做一次,然后重复使用。每次您创建 Instance 时,它都会读取数兆字节的日志文件,以确保清理所有内容。
  • Session 不算太贵。如果你有一个服务器规模的应用程序,那么你应该重用会话,但在小范围内它并不重要。
  • 您没有将参数设置为 Instance,例如日志文件路径、日志文件前缀(我认为它的 v01 用于网络缓存?)
  • 查看 Windows 应用程序事件查看器,查找类别 ESENT 事件。确切的日志文件位置应出现在事件日志条目中。
  • 支持直接访问这些文件。如果您修改文件,则网络缓存可能会出现故障。
  • 如果是为了取证目的,请向 MS 立案并让取证人员参与进来。应该有一个渠道来帮助执法人员完成他们的工作。
  • 您提到了不同的机器。如果您从不同的机器复制文件,那么它可能采用不同的格式,旧版本的 windows 根本无法理解。 esent.dll 可以读取旧文件,但不能读取未来的文件。

希望对您有所帮助,

-马丁