문제

ASP.NET MVC 5 WEBROLE API가 문자열을 사용하는 MAXMIND GEO IP 데이터베이스를 사용하여 다음과 같이 사용합니다.

  var reader = new DatabaseReader    (@"C:\Users\User\Source\Workspaces\myproject\Contents\db.mmdb");
.

전체 물리적 경로가 필요합니다. 상대 경로가 작동하지 않습니다. 질문은 다음과 같습니다. 클라우드에 WebLole 배포, 어떻게 데이터베이스를 검색 할 수 있습니까?

원격 연결을 통해 입력 인스턴스에서 파일이 있고 경로가 있는지 확인할 수 있습니다.

var reader = new DatabaseReader(@"E:\sitesroot\0\Contents\db.mmdb");
.

그러나 이것은 작동하지 않으며 예외가 파일 'E : \ siteRoot \ 0 \ contents \ db.mmdb'를 찾을 수 없습니다.

어떻게해야합니까?BLOB를 사용해야합니까? 데이터베이스는 하루에 수억 수백만 번 호출 될 수 있으므로 BLOB가 이러한 양의 동시 연결을 지원할 수 있는지 여부를 알 수 없으므로 VM 인스턴스에 포함시키는 것이 좋습니다. 감사합니다

도움이 되었습니까?

해결책

CloudService WebLole에서 파일 기반 DB를 사용하면 실제로 나쁜 아이디어입니다. WebLole을 배포 할 때마다 DB가 덮어 쓸 수 있습니다.동시성을 보장하는 쉬운 방법은 없습니다.그렇다고 말하면서, Azure SQL 또는 MySQL (또는 새로운 코드를 배포 할 때마다 덮어 쓴 다른 데이터베이스가 덮어 쓰지 않는 다른 데이터베이스)을 사용하는 것이 좋습니다. BLOB는 파일 저장소에 대해 괜찮지 만 동적 DB가 아니며 크기 제한은문제뿐만 아니라

목차 폴더의 파일에 액세스하려면이 Sy Post .

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top