0

我有一个 Azure 应用服务和一个 Azure 存储帐户。我知道应用服务后面有一个服务器/虚拟机,但我没有明确启动一台机器。

我正在尝试从访问数据库中导入数据,这些数据将定期上传到我的存储帐户中的文件共享中。我想使用 Azure WebJob 在后台完成工作。

我正在尝试使用 DAO 来读取数据:

string path = @"\\server\share\folder\datbase.mdb";
DBEngine dbe = new DBEngine();
Database db = dbe.OpenDatabase(path);
DAO.Recordset rs = db.OpenRecordset("select * from ...");

这在我在本地运行时有效,但是当我尝试在访问存储帐户中的文件共享的 Web 作业中运行它时,它没有找到该文件。我认为这是因为 DBEngine 对 Azure 和 Azure 帐户名称和安全密钥一无所知,不发送它们并且 Azure 存储不响应。

所以我想尝试的是看看我是否可以将 Azure 存储文件共享映射到我的应用服务底层的服务器上。我尝试了许多不同的方法,但每次都收到“拒绝访问”的变体。我努力了:

  • 从 Azure 门户中的应用服务控制台运​​行 net use T:\name.file.core.windows.net\azurefileshare /u:name key
  • 从我的网络作业中的进程运行 net use
  • 从我的网络作业中调用 WNetAddConnection2

看起来服务器被锁得很紧。有人对我如何将文件共享映射到底层服务器有任何想法吗?

非常感谢

4

2 回答 2

0

最后,正如 Jambor 所说,应用服务 VM 被紧紧锁定。

但是,事实证明,应用服务 VM 带有一些本地临时存储空间,供 VM 上运行的各种组件使用。

它位于 D:\local\Temp\ 并且可以通过 Web 作业写入。

有趣的是,这是与 D:\local 不同的共享/驱动器上的逻辑文件夹,并且此额外存储的大小取决于应用服务的规模。

于 2016-12-19T02:03:50.460 回答
0

据我所知,Azure Web 应用在sandbox中运行。我们无法将 Azure 文件共享映射到 Azure Web 应用。因此,如果您选择 Azure Web 应用程序,Azure 文件存储是一个不错的选择。根据我的经验,您可以使用以下解决方法。希望这能给你一些提示。

1) 使用 Azure 文件存储,但选择 Azure VM 或云服务作为主机服务。

2) 仍然选择 Azure Web App 作为主机服务,但在解决方案中包含访问 db 并上传到 Azure Web App。

3) 选择 SQL Azure 作为数据库。这是可以帮助我们将访问数据库迁移到 SQL Azure的文章

于 2016-12-09T06:50:51.100 回答