DevOps 部署后 wwwroot 上的访问被拒绝

Rys*_*ora 9 azure kudu azure-devops

我已使用 Azure DevOps 将 .Net Core Web 应用程序部署到 Azure 应用服务。现在,当我尝试使用 Kudu 在“D:\home\site\wwwroot”中创建文件时,它说:

409 冲突:无法写入本地资源 'D:\home\site\wwwroot\anc' > 由于错误'找不到文件 'D:\home\site\wwwroot\anc'。'。

我注意到“D:\home\site\wwwroot”目录上的权限与我使用发布配置文件部署的类似 Web 应用程序中的权限不同

在有问题的应用程序上获取 Acl 结果:

PS D:\home\site\wwwroot> Get-Acl "D:\home\site\wwwroot"
Get-Acl "D:\home\site\wwwroot"




    Directory: D:\home\site





Path    Owner                   Access                                         

----    -----                   ------                                         

wwwroot IIS APPPOOL\luncher-dev NT AUTHORITY\SYSTEM Allow  FullControl...      


Run Code Online (Sandbox Code Playgroud)

在其他类似应用上获取 Acl 结果:

PS D:\home\site\wwwroot> Get-Acl "D:\home\site\wwwroot"
Get-Acl "D:\home\site\wwwroot"




    Directory: D:\home\site





Path    Owner                  Access                                          

----    -----                  ------                                          

wwwroot BUILTIN\Administrators Everyone Allow  DeleteSubdirectoriesAndFiles,...


Run Code Online (Sandbox Code Playgroud)

来自 Azure DevOps 的相应发布管道

开发运营管道

如何使 wwwroot 目录可写?

tec*_*yan 16

更改此应用设置键

WEBSITE_RUN_FROM_PACKAGE = 1 to 0
Run Code Online (Sandbox Code Playgroud)

此设置使 wwwroot 成为只读文件系统。

使用从包运行,这是严格执行的,因为 wwwroot 文件夹变为只读

  • 当我将 1 更改为 0 并保存设置时,我的网站未运行并给出错误 500.37 之类的?任何原因? (2认同)

dyl*_*anT 5

当您部署为 zip 时,您无法编辑文件系统。

\n\n

下面引用https://tomasherceg.com/blog/post/azure-app-service-cannot-create-directories-and-write-to-filesystem-when-deployed-using-azure-devops

\n\n

我根本不知道这个功能,而且该设置隐藏在 VSTS 任务中,所以我没有注意到它。您需要展开“其他部署选项”部分,然后单击“选择部署方法”复选框,默认情况下该复选框处于未选中状态。只有在这两次单击之后,您才能看到包含部署方法的下拉列表 \xe2\x80\x93 ZipDeploy 是默认的。

\n\n

我需要将其更改为使用 WebDeploy,以便应用程序文件将存储为普通文件,并且应用程序可以像以前一样在文件系统中写入。

\n