在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,尺寸限制会让您进入麻烦也是如此。

要访问内容文件夹中的文件,请参阅此所以post 。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top