maxmind/geoip api を使用すると、「データベースが閉じられました」というエラーが発生しました。
これを行うための複数の異なる方法(単一行と複数行のソリューションなど)を試しましたが、なぜ機能しないのかわかりません。デバッグ中に、データベースから国名を取得したことがわかるため、コードの LookupService 行に対してデータベースが読み取られていることがわかりましたが、使用しようとすると
string userIpAddress = HttpContext.Current.Request.UserHostAddress;
string geoIpDbPath = "/App_Data/CMSModules/WebAnalytics/MaxMind/";
string geoIpDb = geoIpDbPath + "GeoIP.dat";
LookupService ls = new LookupService(geoIpDb, LookupService.GEOIP_MEMORY_CACHE);
Country c = ls.getCountry(userIpAddress);
データベースへのアクセスが成功し、変数 'ls' に適切な値が与えられていることがわかるので、これは非常にいらだたしいことです。
私のアプローチの何が問題になっていますか?