我们正在尝试将.Net Core 3.1 Web App Service部署到Azure,并且不断遇到无法确定如何解决的错误。我们正在将其部署到应用服务计划(B1)中进行测试,对于.Net Core 3.1来说,我们只能向Linux发布“代码”。我们已经通过Visual Studio进行了部署,没有任何问题,但是通过Azure Devops进行部署时,它虽然可以成功部署,但是似乎无法运行。有几个错误:
无法加载/ usr / local / lib / php / extensions / no-debug-non-zts-20151012 / opcache:/ usr / local / lib / php / extensions / no-debug-non-zts-20151012 / opcache:无法打开共享对象文件:没有这样的文件或目录
无法提供目录/ home / site / wwwroot /:找不到匹配的DirectoryIndex(index.php,index.html,default.htm,default.html,index.htm,index.html,index.php,hostingstart.html),并且选项指令禁止的服务器生成的目录索引
这是我们的错误日志:
2020-02-11T17:08:00.415853887Z _____
2020-02-11T17:08:00.415890488Z / _ \ __________ _________ ____
2020-02-11T17:08:00.415897789Z / /_\ \___ / | \_ __ \_/ __ \
2020-02-11T17:08:00.415902989Z / | \/ /| | /| | \/\ ___/
2020-02-11T17:08:00.415907889Z \____|__ /_____ \____/ |__| \___ >
2020-02-11T17:08:00.415913089Z \/ \/ \/
2020-02-11T17:08:00.415917789Z A P P S E R V I C E O N L I N U X
2020-02-11T17:08:00.415922690Z
2020-02-11T17:08:00.415927190Z Documentation: http://aka.ms/webapp-linux
2020-02-11T17:08:00.415931590Z PHP quickstart: https://aka.ms/php-qs
2020-02-11T17:08:00.415936090Z PHP version : 7.0.33
2020-02-11T17:08:00.415940490Z Note: Any data outside '/home' is not persisted
2020-02-11T17:08:00.809232004Z Running oryx -appPath /home/site/wwwroot -output /opt/startup/startup.sh -bindPort 8080 -startupCommand 'dotnet TestProject.dll; apache2-foreground;'
2020-02-11T17:08:01.052506605Z Oryx Version: 0.2.20191105.2, Commit: 67e159d71419415435cb5d10c05a0f0758ee8809, ReleaseTagName: 20191105.2
2020-02-11T17:08:01.054897394Z Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
2020-02-11T17:08:01.055406213Z Could not find operation ID in manifest. Generating an operation id...
2020-02-11T17:08:01.056002335Z Build Operation ID: dfa49d40-fc36-4418-be4c-4886a385fe91
2020-02-11T17:08:02.861636886Z Writing output script to '/opt/startup/startup.sh'
2020-02-11T17:08:03.264793168Z /opt/startup/startup.sh: 7: /opt/startup/startup.sh: dotnet: not found
2020-02-11T17:08:04.221360854Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.16.1.5. Set the 'ServerName' directive globally to suppress this message
2020-02-11T17:08:04.387602773Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.16.1.5. Set the 'ServerName' directive globally to suppress this message
2020-02-11T17:08:04.409543294Z Failed loading /usr/local/lib/php/extensions/no-debug-non-zts-20151012/opcache: /usr/local/lib/php/extensions/no-debug-non-zts-20151012/opcache: cannot open shared object file: No such file or directory
2020-02-11T17:08:04.634700217Z [Tue Feb 11 17:08:04.634541 2020] [mpm_prefork:notice] [pid 28] AH00163: Apache/2.4.25 (Debian) PHP/7.0.33 configured -- resuming normal operations
2020-02-11T17:08:04.635348542Z [Tue Feb 11 17:08:04.634862 2020] [core:notice] [pid 28] AH00094: Command line: 'apache2 -D FOREGROUND'
2020-02-11T17:08:04.646641464Z 172.16.1.1 - - [11/Feb/2020:17:08:04 +0000] "GET /robots933456.txt HTTP/1.1" 404 341 "-" "-"
2020-02-11T17:08:18.196650781Z [Tue Feb 11 17:08:18.171200 2020] [autoindex:error] [pid 41] [client 172.16.1.1:51779] AH01276: Cannot serve directory /home/site/wwwroot/: No matching DirectoryIndex (index.php,index.html,default.htm,default.html,index.htm,index.html,index.php,hostingstart.html) found, and server-generated directory index forbidden by Options directive
2020-02-11T17:08:18.197972531Z 172.16.1.1 - - [11/Feb/2020:17:08:18 +0000] "GET / HTTP/1.1" 403 363 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
我们已经针对发行版尝试了许多不同的配置,但是似乎没有什么可以超越这一步骤的。这是我们的CI YAML:
这是我们的发布管道配置:
任何细节或朝正确方向的推动将不胜感激。我们没有找到太多有关此问题或如何解决此特定错误的文档。
Although I did select the App Service Plan to be a .Net Core 3.1 application, it seems the App Service itself is not set as such. In order to fix this, you need to go to the Configuration tab of your App Service, go to "General Settings" and make sure you set these settings:
Note the Major and Minor version do not appear until you select the .Net Core Stack. I wish this was something that was more apparent and automatically set if you set that as your runtime stack when creating your app service plan. I hope this helps anybody else that is also running into this problem.
UPDATE
推送新版本时,我们意识到AzureDevops正在覆盖此堆栈设置。如果用户正在创建发布管道,但是他们没有对Azure的正确访问权限,则不会填充发布中Azure应用服务部署任务中的“运行时堆栈”。具有较高特权的人将看到所有可用的不同选项。当前,选择的选项是“最新(DOTNETCORE |最新)”。当前“ 3.1(DOTNETCORE | 3.1)”不可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句