我们的 Web 应用程序由三个主要部分组成:
- 运行 ASP.NET 4.5 网站的 Web 服务器;
- 托管 SQL Server 2012 的数据库服务器;
- 另一台服务器托管后台使用的一些旧版应用程序;
各部分之间的关系如下:
Web 应用程序运行时将应用程序池标识设置为名为 Foo 的本地用户,并使用 Entity Framework 使用数据库;
旧版应用程序使用数据库并定期将文件系统中的数据更改导出为 XML 文件,文件夹使用 Windows 共享给本地用户 Foo(本地用户与 Web 服务器上的密码相同)文件共享功能;
Web 应用程序监视文件共享中的新数据并导入所有更改(如果有);
现在我们想将此应用程序迁移到 Azure。不幸的是,我们必须对 SQL Server 使用 VM,因为我们的旧应用程序数据库使用文件流功能,而该功能在 Azure SQL 上不可用。此外,我们还需要另一个用于遗留应用程序的虚拟机。
目前我得到了以下结果:
在 Azure 上创建了一个新的虚拟网络;
创建了一个新的 Azure 网站并使用点到站点 VPN 连接将其连接到 VNET;
为 SQL Server 和旧版应用程序创建 2 个虚拟机,并将它们连接到 VNET,将网络标记为专用网络,禁用防火墙;
一切正常,除了一件事 - 网站无法访问位于旧版应用程序虚拟机上的文件共享。我尝试过向所有人共享,但没有成功。
所以,我的问题是:是否可以从 Azure 网站访问文件共享?如果没有,我还有什么选择?
我知道我们可以为网站启动另一个虚拟机,这样就不会出现任何问题,但我想使用 Azure 网站来优化成本并利用所有 Azure 优势。
最佳答案
在撰写本文时,Azure 文件服务 SMB 共享只能从 VM、Web 和辅助角色访问。您可以使用存储 REST.API 或客户端库从 Azure 网站或本地访问您的文件。您可以从 nuget 获取它。
Install-Package WindowsAzure.Storage
我进行了相同的练习,将使用文件的 Web 应用程序移动到 Azure。 Example of what I did.
关于asp.net - 从 Azure 网站访问文件共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28725172/