如何在Azure云服务WebRole中引用本地文件



在ASP.net MVC 5 WebRole中,我使用MaxMind地理IP数据库,其API使用如下字符串:

  var reader = new DatabaseReader    (@"C:UsersUserSourceWorkspacesmyprojectContentsdb.mmdb");

它需要一个完整的物理路径,相对路径不起作用。问题是:在云中部署WebRole,我如何检索数据库?

在实例中通过远程连接输入,我可以看到文件在那里,路径是:

var reader = new DatabaseReader(@"E:sitesrootContentsdb.mmdb");

但这不起作用,我有一个例外无法找到文件'E:sitesrootContentsdb.mmdb'.

我该怎么办?我应该使用BLOB吗?数据库需要快速访问,因为它每天可能被调用数亿次,我不知道BLOB是否可以支持这些数量的同时连接,所以我更喜欢将它放在VM实例中。由于

在CloudService WebRole中使用基于文件的DB是一个非常糟糕的主意——每次你部署WebRole时,DB都会被覆盖。没有简单的方法来保证并发性。也就是说,最好使用Azure Sql或MySql(或任何其他不会在每次部署新代码时被覆盖的数据库)。BLOB可以用于文件存储,但不能用于动态db,而且大小限制也会给您带来麻烦。

要访问contents文件夹中的文件,请参阅这篇文章。

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

相关内容

  • 没有找到相关文章

最新更新