ASP.NET MVC - 加载Maxmind dat文件

时间:2010-08-09 23:05:20

标签: c# asp.net-mvc geolocation

我打算使用Maxmind的DAT文件在我正在开发的ASP.NET MVC应用程序中提供一些基本的地理定位功能。 DAT文件大约是17mb,我想知道在我的应用程序中加载它的最佳方法是什么 - 显然我不想在每次需要一些地理信息时加载它并且我认为最佳的行动方案是在应用程序启动时将其加载到共享变量中。

其他人怎么接近这个?有什么建议? 感谢

JP

2 个答案:

答案 0 :(得分:4)

缓存是可怕的存储它的地方。它可以在没有通知的情况下被删除,因此每当它被删除时你都必须重新加载它。

Maxmind supplies a .NET API处理他们的DAT文件。打包为tar.gz(描述为“GeoIP City,Country,ISP等的开源C#API”)已经可以选择将数据有效地加载到私有缓存中,例如:

var lookupService = new LookupService("path.to.my.dat", LookupService.GEOIP_MEMORY_CACHE);

答案 1 :(得分:2)

在我看来HttpRuntime.Cache是您可以保留此数据的最佳位置。有关如何在缓存中添加和删除内容的信息,请参阅here