2

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' に適切な値が与えられていることがわかるので、これは非常にいらだたしいことです。

私のアプローチの何が問題になっていますか?

4

2 に答える 2

0

私は間違いを犯し、サーバー上の間違った場所でファイルを探していたことが判明しました。とは言っても、geoip によって表示されるエラー メッセージでは、コード内のエラーがどこにあるかが明確にわかりません。.dat ファイルが見つからなかったことが通知され、エラーではなく「LookupService」行にエラーがスローされると役立ちます。 「国」ラインに来ます。助けようとした人たちに感謝します!

于 2014-03-28T16:21:11.937 に答える