如何将文件添加到 Azure 应用服务中的虚拟目录

Posted

技术标签:

【中文标题】如何将文件添加到 Azure 应用服务中的虚拟目录【英文标题】:How to add a file to a virtual directory in Azure App Service 【发布时间】:2021-12-21 18:24:59 【问题描述】:

我将 asp.net mvc 应用程序作为应用服务托管在 Azure 上......Example.com

我需要一个可以将我的 Google 购物提要作为文本文件托管的位置,因此我在我的 Azure 门户中为该 Example.com 应用服务创建了一个虚拟目录。

虚拟目录是 Example.com/myvirtualdirectory 我通过转到 (Configurations > Path Mappings > + New Virtual application or directory) 创建了这个我将 virtual path 命名为 /myvirtualdirectory 然后我将 physical path 命名为 site \wwwroot 和 Type 作为目录。

现在我已经创建了目录,如何在该目录中获取包含我的 ShoppingFeed 的 txt 文件?当我访问 URL Example.com/myvirtualdirectory 时,我看到 Azure 中的一个页面已启动并正在运行,上面写着:“嘿,应用服务开发人员!您的应用服务已启动并正在运行。是时候采取下一步行动并进行部署了你的代码。"

这样做的目的是,当 Google 计划获取我的最新 Feed 数据时,它会访问该网址并能够查看我的所有产品 Feed 信息。

    那么我如何将我的文件放到那个位置呢?我是否必须第一次在 Azure 门户中的某个地方上传它?

    我是否还必须在 Visual Studio 中的实际应用程序上创建目录?如果是这样,我该怎么做?如果这是我必须做的,我该如何在我的实际项目中创建一个虚拟路径或目录?

    既然混合了 VD,这将如何影响我今后的部署?目前现有的应用程序没有虚拟目录,我通过单击 Visual Studio 中的“发布”进行部署。它直接部署到 Azure 应用服务。

【问题讨论】:

【参考方案1】:

"嗨,应用服务开发人员!您的应用服务已启动,并且 正在运行。是时候采取下一步行动并部署您的代码了。"

这是因为默认文档。确保您的默认页面列在此处并且位于hostingstart.html 上方

您可以在“默认文档”列表中添加默认文档。

转到 Azure 门户 ->Web 应用程序 -> 设置 -> 应用程序设置 -> 默认文档 -> 添加并保存。

您也可以使用 Kudu 控制台检查部署的文件是否可用。 -确保您的启动文件(例如:index.htm)已添加到默认文档中

最简单的方法是使用 KUDU 控制台上传文件。要访问控制台,请导航到https://<yoursite>.scm.azurewebsites.net,其中<yoursite> 是您的应用程序的名称

在 Kudu 控制台中,单击 Debug Console 选项卡,然后单击 CMD。这将打开一个文件浏览器,您可以在其中导航到您的目录并上传文件。

更新答案:

将 web.config 文件添加到您的 azure 目录。将以下代码添加到其中。

<configuration>
<system.webServer>
    <rewrite>
      <rules>
        <rule name="Main Rule" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll">
                    <add input="REQUEST_FILENAME" matchType="IsFile" negate="true" />
                    <add input="REQUEST_FILENAME" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="/" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

【讨论】:

嘿,谢谢,我按照这些说明操作并通过 Kudu 控制台添加了名为 GoogleFeedFile.txt 的文件,方法是从屏幕截图转到 ui,然后转到根目录,然后单击 + 号,然后命名文档,然后将数据粘贴到文本区域。然后我尝试访问该 URL Example.com/myvirtualdirectory/GoogleFeedFile.txt,但它没有显示我的数据。我只是得到旧的“您要查找的资源已被删除、名称已更改或暂时不可用”空白页。我是否在其中一个步骤中转错了一步? 尝试将以下内容添加到 Web.config:

以上是关于如何将文件添加到 Azure 应用服务中的虚拟目录的主要内容,如果未能解决你的问题,请参考以下文章

如何通过私有 DNS 名称从虚拟网络中的应用服务访问 Azure VM?

将 Azure 存储中的文件移动到共享网络目录

Azure Active Directory:使用 PowerShell 将服务主体添加到目录读取者角色

Azure SQL - 如何将 AD 用户添加到 SQL 池数据库

开放Azure虚拟机端口

用于连接到虚拟机并运行 azcopy 的 Azure 逻辑应用