2010-08-09 2 views
1

Maxmind의 DAT 파일을 사용하여 개발중인 ASP.NET MVC 응용 프로그램에서 일부 기본 Geolocation 기능을 사용할 계획입니다. DAT 파일의 크기는 약 17MB이며 응용 프로그램에서이 방법을로드하는 것이 가장 좋은 방법인지 궁금합니다. 지리적 정보가 필요할 때마다로드하고 싶지 않으며 최선의 행동 방침은 다음과 같습니다. 응용 프로그램 시작시 공유 변수에로드하십시오.ASP.NET MVC - Maxmind dat 파일로드

다른 사람들이 어떻게 접근 했습니까? 어떤 추천?

답변

4

캐시는 끔찍한 저장 장소입니다. 그것은 예고없이 닦아 낼 수 있으므로 삭제 될 때마다 다시로드해야합니다.

Maxmind supplies a .NET API 해당 DAT 파일을 처리 할 수 ​​있습니다.

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

이 API를 큰 성공을 거두었습니다. 정말 빠릅니다. – jessegavin

+0

원래 MaxMind C# API 버전 (http://www.maxmind.com/app/csharp에 있음) 대신 을 사용하면 http://code.google.com/p/geoipsharp에서 약간 수정 된 버전을 사용해 볼 수 있습니다. – Evereq

2

HttpRuntime.Cache이 날 것으로 보인다 감사

JP는이 데이터를 유지 할 수있는 최적의 장소가 될 수 있습니다. 캐시에 항목을 추가하고 삭제하는 방법에 대한 정보는 here을 참조하십시오.

+0

: ("GeoIP가 도시, 국가, ISP 등을위한 오픈 소스 C#을 API"로 설명)는 tar.gz의로 포장 하나는 이미 효율적으로 개인 캐시에 데이터를로드 할 수있는 옵션, 예를 들면있다 +1 - 정확히 제가 제안했을 것입니다. 사실,이 메커니즘은 원하는만큼 간단하거나 완벽하게 기능 할 수 있습니다. 내 애플 리케이션에서 나는 람다와 익명의 함수가 모든 '강하게 타입이 지정된'객체들을 돌보아서 캐시에 대한 요청이 그 객체를 채우거나 그 주어진 키의 내용을 얻는 단계로 진화했다. 이것은 분명히 계획을 세우는 전략이지만, 일단 '핵심'계획이 확인되면 그것은 결코 뇌물이 아닙니다. 이 구현에 대한 링크를 삭제할 수 있습니다. (단위가 래퍼에 대한 인터페이스를 사용하므로 테스트 할 수 있습니다.) –

+0

Sweet, 마치 동작을 처리하는 것처럼 들립니다. 감사! –