- Я установил через nuget следующее: MaxMind.GeoIP2 3.0.0 (https://www.nuget.org/packages/MaxMind.GeoIP2/#show-github-usage).
Я скачал двоичный файл MaxMind DB: (https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz)
Тогда я Распакованный it.
У меня работает следующее:
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% находится в правильной папке и доступен для чтения.
Что может это испортить? '
Спасибо