加载 maxMind 需要对文件进行独占锁定

问题描述 投票:0回答:0

我有 2 个 Web 应用程序从相同的位置加载相同的 MaxMind 文件 我这样加载文件:

_reader = new DatabaseReader(@"D:\MaxMind\GeoLite2-ASN.mmdb", mode: MaxMind.Db.FileAccessMode.MemoryMapped);

取决于谁先加载,我总是有“松手”;如何用更多的应用程序加载同一个 MaxMind 文件来避免这个错误:

Access to the path is denied.
   at System.IO.MemoryMappedFiles.MemoryMappedFile.OpenCore(String mapName, HandleInheritability inheritability, Int32 desiredAccessRights, Boolean createOrOpen)
   at System.IO.MemoryMappedFiles.MemoryMappedFile.OpenExisting(String mapName, MemoryMappedFileRights desiredAccessRights, HandleInheritability inheritability)
   at MaxMind.Db.MemoryMapBuffer..ctor(String file, Boolean useGlobalNamespace, FileInfo fileInfo)
   at MaxMind.Db.MemoryMapBuffer..ctor(String file, Boolean useGlobalNamespace)
   at MaxMind.Db.Reader.BufferForMode(String file, FileAccessMode mode)
   at MaxMind.Db.Reader..ctor(String file, FileAccessMode mode)
   at MaxMind.GeoIP2.DatabaseReader..ctor(String file, IEnumerable`1 locales, FileAccessMode mode)
   at MaxMind.GeoIP2.DatabaseReader..ctor(String file, FileAccessMode mode)
c# maxmind
© www.soinside.com 2019 - 2024. All rights reserved.