从 WebAppService 访问 Azure 文件共享

Posted

技术标签:

【中文标题】从 WebAppService 访问 Azure 文件共享【英文标题】:Access Azure Files Share from WebAppService 【发布时间】:2019-07-11 13:36:54 【问题描述】:

我们目前正在将旧的 ASP.net Web 应用程序从托管服务器 IIS7 移动到 Azure。

在当前设置中,站点使用文件服务器上共享文件夹的 UNC 路径访问文件服务器。

\\file-server\files-client

目前,我们确实不想改变这种方法,因为它会使移动过程大大复杂化。

我们已经建立了一个带有文件服务的 Azure 存储和一个名为 files-client 的共享

这可以通过设置凭据并通过

从 VM 完美访问
\\storageaccount.file.core.windows.net\files-client 

但是

我们真的希望这个网站作为 Web 应用服务运行,因为它给我们带来了许多优势。

我们已经建立了一个应用服务,已经发布了 Web 应用程序,一切都运行良好,包括数据库访问等。

不幸的是,当 Web 应用程序尝试使用

访问文件共享时,我们的运气就用完了
\\storageaccount.file.core.windows.net\files-client\test.jpg

我们得到一个访问错误:

Access to the path '\\storageaccount.file.core.windows.net\files-client\test.jpg' is denied.

这告诉我应用服务看到了共享但无权访问它。

我知道我们必须以某种方式授予应用服务访问此存储的权限,但是在网上搜索密集告诉我这无法完成,我根本无法理解,希望我没有找对地方。

问题是:如何在应用服务中设置凭据以使其访问我的存储共享?

非常感谢任何指导。

提前致谢

【问题讨论】:

【参考方案1】:

应用服务沙盒明确不允许访问 SMB 协议所需的端口 (137/138/139/445)。

本文在 Restricted Outgoing Ports 下提到它:https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox.

【讨论】:

感谢您的解释。我很害怕,但是如果端口被阻止,为什么我会收到拒绝访问错误而不是找不到资源错误?

以上是关于从 WebAppService 访问 Azure 文件共享的主要内容,如果未能解决你的问题,请参考以下文章

如何发布Azure web app

如何发布Azure web app

通过 Azure Devops 将 .Net Core 3.1 Web 应用程序部署到 Azure Linux Web 服务时出错

从 Azure Functions 访问 Azure Key Vault 时访问被拒绝

从 Azure VM 访问 Azure 存储,无需出站 Internet

如何自动将文件从多个 Azure VM 复制到 Azure 存储并访问