作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ASP.net MVC 5 WebRole 中,我使用 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 WebRole 中使用基于文件的数据库是一个非常糟糕的主意 - 每次部署 WebRole 时,数据库都会被覆盖。没有简单的方法来保证并发性。也就是说,最好使用 Azure Sql 或 MySql(或任何其他不会在每次部署新代码时被覆盖的数据库)。BLOB 适合文件存储,但不适用于动态 DB,而且大小限制会让您陷入困境。也有麻烦。
要访问内容文件夹中的文件,请参阅此 SO post .
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
关于azure - 如何在Azure云服务WebRole中引用本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24012386/
我是一名优秀的程序员,十分优秀!