首页 > 解决方案 > Azure 应用服务中的 .NET5 Blazor 服务器应用返回“您无权查看此目录或页面”

问题描述

我正在尝试通过 Azure DevOps 将使用 .NET5 的 Blazor Server 应用程序部署到 Azure 应用程序服务。

Blazor 应用程序在本地运行并正常工作。Azure DevOps 管道似乎也在正确构建和部署。如果我在 Azure 门户中使用控制台,我可以看到我期望的文件位于 wwwroot 文件夹中(我猜这是正确的?)。在“配置”>“常规设置”中,我可以看到已为 .NET 5 正确配置了应用服务。在网络端,目前没有访问限制。我现在还关闭了应用程序中的所有身份验证,以确保这不会产生影响。

当我尝试访问https://my-app.azurewebsites.net上的站点时(不是真正的 url,只是一个相关的示例),我得到一个带有以下文本的白页:“您无权访问查看此目录或页面。”。当我从 Kudu 页面查看诊断转储时,我可以看到更详细的错误页面,其中显示 403.14 - Forbidden 和消息“Web 服务器配置为不列出此目录的内容。”。如果我在 App Insights 中查看我尝试访问它的时间,我也可以看到带有 403 响应的请求(出于某种原因,使用 url:http://localhost/)。不幸的是,这个错误似乎涵盖了许多错误,因此虽然我发现了各种具有类似问题的来源,但到目前为止我发现的解决方案都没有产生任何积极影响。

编辑:所以我做了更多的挖掘,我认为有些文件可能会丢失。我尝试创建一个新的 Blazor Server 应用程序并通过 Visual Studio 手动发布它。这行得通,我从我的应用程序中发现的唯一区别是我没有 web.config、hostingstart.html 或静态 css/js 等(来自 wwwroot)。当我为我的应用程序或我创建的测试应用程序构建时,这些文件都不在输出目录中,因此看起来它们必须由 VS 手动发布过程中的某些内容单独添加,并且 Azure DevOps 发布步骤没有这样做. 仍然不确定解决此问题的正确方法是什么(甚至完全确定这些东西是否相关)。

有没有人知道我可能会错过什么?

标签: azureazure-web-app-serviceblazorblazor-server-side.net-5

解决方案


因此,在弄清楚这里发生了什么之后,我打算删除它,但我想可能其他人会犯同样的错误,这可能会有所帮助。基本上,我复制了 Azure 函数应用程序的另一个部署管道,作为部署管道的基础,我只是做了一个,这就dotnet build足够了。但是,这种应用程序似乎可以获得您需要运行的有益输出dotnet publish


推荐阅读