我正试图通过Azure DevOps将使用.NET5的Blazor Server应用程序部署到Azure应用程序服务。
Blazor应用程序在本地运行并正常工作。Azure DevOps管道似乎也在正确构建和部署。如果我在Azure门户中使用控制台,我可以看到我想要的文件在wwwroot文件夹中(我认为这是正确的?(。在配置>常规设置我可以看到应用程序服务是为.NET 5正确配置的。在网络方面,目前没有访问限制。我现在还关闭了应用程序中的所有身份验证,只是为了确保这不会产生影响。
当我尝试访问网站时https://my-app.azurewebsites.net(不是真正的url,只是一个相关的例子(我得到了一个白色页面,上面有以下文本:;您没有查看此目录或页面的权限&";。当我从Kudu页面查看Diagnostics转储时,我可以看到更详细的错误页面,上面写着403.14-Forbidden;Web服务器配置为不列出此目录的内容&";。如果我在App Insights中查看我尝试访问它的时间,我也可以看到403响应的请求(出于某种原因,url:http://localhost/)。不幸的是,这个错误似乎涵盖了许多错误,因此,尽管我发现了各种有类似问题的来源,但到目前为止,我发现的解决方案都没有产生任何积极影响。
编辑:所以我做了更多的挖掘,我想有些文件可能不见了。我尝试创建一个新的Blazor Server应用程序,并通过Visual Studio手动发布它。这很有效,我从我的应用程序中发现的唯一区别是,我没有web.config、hostingstart.html或静态css/js等(来自wwwroot(。当我为我的应用程序或我创建的测试应用程序构建时,这些文件都不在输出目录中,所以看起来它们必须由VS手动发布过程中的某些东西单独添加,而Azure DevOps发布步骤并没有这样做。仍然不确定解决这一问题的正确方法是什么(甚至完全不确定这些东西是否相关(。
有人知道我可能错过了什么吗?
所以在弄清楚这里发生了什么之后,我打算删除这个,但我想可能其他人也会犯我犯的同样的错误,这可能会有所帮助。基本上,我为Azure功能应用程序复制了另一个部署管道,作为部署管道的基础,在这方面,我只做了一个dotnet build
,这就足够了。然而,这类应用程序似乎需要运行dotnet publish
才能获得健康的输出。