如何在Azure Cloud Service WebBle中引用本地文件
-
21-12-2019 - |
题
在ASP.NET MVC 5 WebRole I`m使用MaxMind Geo IP数据库,其API使用如下所示的字符串:
var reader = new DatabaseReader (@"C:\Users\User\Source\Workspaces\myproject\Contents\db.mmdb");
.
需要一个完整的物理路径,相对路径不起作用。 问题是:在云中部署WebRole,如何检索数据库?
在实例中通过远程连接输入,我可以看到文件是有的,路径是:
var reader = new DatabaseReader(@"E:\sitesroot\0\Contents\db.mmdb");
.
但这不起作用,我有一个例外找不到文件'e:\ sitesroot \ 0 \ contents \ db.mmdb'。
我该怎么办?我应该使用blob吗? 数据库需要快速访问,因为它可以每天调用数亿次,我不知道Blob是否可以支持这些同步连接量,因此我更愿意在VM实例中拥有它。 谢谢
解决方案
在cloudservice webelole中使用基于文件的db是一个非常糟糕的主意 - 每次部署WebRole时,DB都将被覆盖。没有简单的方法来保证并发。也就是说,最好使用Azure SQL或MySQL(或每次部署新代码的任何其他数据库都不会被覆盖)。Blob对于文件存储,但不是动态DBS,尺寸限制会让您进入麻烦也是如此。
要访问内容文件夹中的文件,请参阅此
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
. 不隶属于 StackOverflow