Azure Cloud Service Webroleでローカルファイルを参照する方法
-
21-12-2019 - |
質問
ASP.NET MVC 5 WEBROLE I`M APIがこのような文字列を使用するMaxMind GEO IPデータベースを使用しています。
var reader = new DatabaseReader (@"C:\Users\User\Source\Workspaces\myproject\Contents\db.mmdb");
.
完全な物理パスが必要な場合は、相対パスが機能しません。 質問は次のとおりです.NeBroleをクラウド内の展開、データベースを取得する方法はありますか?
リモート接続を介してインスタンスで入力されている場合は、ファイルがそこにあることがわかり、パスは次のとおりです。
var reader = new DatabaseReader(@"E:\sitesroot\0\Contents\db.mmdb");
.
しかしこれは機能しないため、例外があり、ファイルが見つかりませんでした。\ sitesRoot \ 0 \ contents \ db.mmdb '。
どうすればいいですか?ブロブを使うべきですか? データベースは1日に数百万回似ている可能性があるため、データベースが速くアクセス可能である必要があります.BLOBがこれらの同時接続の量をサポートできるかどうかわかりません。そのため、VMインスタンスに入手することをお勧めします。 ありがとう
解決
CloudService WebroleでファイルベースのDBを使用すると、Webroleを展開するたびに、DBが上書きされる可能性があります。同時実行性を保証する簡単な方法はありません。そうは言っても、Azure SQLまたはMySQLを使用することをお勧めします。新しいコードを展開するたびに上書きされない他のデータベースは、ファイルストレージではOKですが、ダイナミックなDBSではなく、サイズの制限が行われます。トラブルも。
コンテンツフォルダ内のファイルにアクセスするには、この so post
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
. 所属していません StackOverflow