.net core: дерево поиска файла MaxMind Db повреждено: содержит указатель больше базы данных - PullRequest
0 голосов
/ 07 ноября 2019
  1. Я установил через nuget следующее: MaxMind.GeoIP2 3.0.0 (https://www.nuget.org/packages/MaxMind.GeoIP2/#show-github-usage).
  2. Я скачал двоичный файл MaxMind DB: (https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz)

  3. Тогда я Распакованный it.

  4. У меня работает следующее:

string countryResult = null;
using (var reader = new DatabaseReader(mmDBFile)
{
     countryResult = reader.Country(ipAddress).Country.IsoCode;
}

И я получаю исключение:

PohErp.Test.TestPurchase.TestPurchaseService

MaxMind.Db.InvalidDatabaseException : The MaxMind Db file's search tree is corrupt: contains pointer larger than the database.
   at MaxMind.Db.Reader.ResolveDataPointer[T](Int32 pointer, InjectableValues injectables)
   at MaxMind.Db.Reader.Find[T](IPAddress ipAddress, Int32& prefixLength, InjectableValues injectables)
   at MaxMind.Db.Reader.Find[T](IPAddress ipAddress, InjectableValues injectables)
   at MaxMind.GeoIP2.DatabaseReader.Execute[T](String ipStr, IPAddress ipAddress, String type, Boolean throwOnNullResponse)
   at MaxMind.GeoIP2.DatabaseReader.Execute[T](String ipStr, String type, Boolean throwOnNullResponse)
   at MaxMind.GeoIP2.DatabaseReader.Country(String ipAddress)
   at Lob.Backend.Core.Service.MaxMindCountryByIpService.GetCountry(String ipAddress) in C:\work\projects\lob\lob-framework\Lob.Backend.Core\Service\CountryByIpService.cs:line 24
   at PohErp.Web.Services.PurchaseService.Purchase(PurchaseRequest purchaseRequest, String ipAddress, Int64 customerId) in C:\work\projects\lob\poh-erp\PohErp.Web\Services\PurchaseService.cs:line 93
   at PohErp.Test.TestPurchase.TestPurchaseService() in C:\work\projects\lob\poh-erp\PohErp.Test\TestPurchase.cs:line 96
--- End of stack trace from previous location where exception was thrown ---

.net core 3.0
Windows 10 pro
Файл на 100% находится в правильной папке и доступен для чтения.

Что может это испортить? '

Спасибо

...