在Azure Linux Ubuntu 18.04虚拟机上发布Asp.net核心3.1 Web Api

在Azure Linux Ubuntu 18.04虚拟机上发布Asp.net核心3.1 Web Api,linux,apache,asp.net-core,ubuntu,asp.net-core-webapi,Linux,Apache,Asp.net Core,Ubuntu,Asp.net Core Webapi,我正试图在Azure Linux Ubuntu 18.04虚拟机上发布该应用程序。我在VM上配置下面提到的步骤,但我面临404URL未找到的问题。 在此服务器上找不到请求的URL。 Apache/2.4.29(Ubuntu)服务器在myipaddress端口80处出错 我只有一个简单的WeatForecast web api控制器,它是asp.net核心web api 3.1中的默认值 我已经按照下面的命令连接了VM sudo -i wget -q https://packages.micro

我正试图在Azure Linux Ubuntu 18.04虚拟机上发布该应用程序。我在VM上配置下面提到的步骤,但我面临404URL未找到的问题。 在此服务器上找不到请求的URL。 Apache/2.4.29(Ubuntu)服务器在myipaddress端口80处出错

我只有一个简单的WeatForecast web api控制器,它是asp.net核心web api 3.1中的默认值

我已经按照下面的命令连接了VM

sudo -i

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo add-apt-repository universe

sudo apt-get update

sudo apt-get install apt-transport-https

sudo apt-get update

sudo apt-get install dotnet-sdk-3.1

sudo apt-get install aspnetcore-runtime-3.1

sudo apt-get install dotnet-runtime-3.1

sudo apt-get install apache2

systemctl restart apache2

a2enmod proxy proxy_http proxy_html proxy_wstunnel

sudo a2enmod rewrite 


vi /etc/apache2/conf-enabled/webapplication4.conf

<VirtualHost *:80>  
   ProxyPreserveHost On  
   ProxyPass / http://127.0.0.1:5000/  
   ProxyPassReverse / http://127.0.0.1:5000/  
   ErrorLog /var/log/apache2/webapplication4-error.log  
   CustomLog /var/log/apache2/webapplication4-access.log common  
</VirtualHost>
我已经发布了带有文件夹选项的webapi

目标框架为netcoreapp3.0,部署模式为依赖框架

选择linux-x64作为目标运行时,因为我们希望在linux环境中托管应用程序

并使用winscp软件传输文件,使用下面的命令复制文件

cp -R * /var/WebApi/

vi /etc/systemd/system/kestrel-webapplication4.service

[Unit]  
Description=Aspnet Core Web Api running on Ubuntu 18.04  
[Service]  
WorkingDirectory=/var/WebApi  
ExecStart=/usr/bin/dotnet /var/WebApi/webapplication4.dll  
Restart=always  
RestartSec=10  
SyslogIdentifier=dotnet-demo  
User=www-data  
Environment=ASPNETCORE_ENVIRONMENT=Production  
[Install]  
WantedBy=multi-user.target



sudo systemctl enable /etc/systemd/system/kestrel-webapplication4.service

sudo systemctl start kestrel-webapplication4.service

http://MyIpaddress/WeatherForeCast 它显示找不到404 url。位于MyIpaddress端口80的Apache/2.4.29(Ubuntu)服务器能否访问Linux服务器中的lcoalhost:5000/WeatherForeCast?我使用了curl“”命令及其工作原理。我建议您可以尝试按照此操作将conf文件添加到正确的文件夹中,然后重试。我尝试了本文。httpd目录在ubuntu 18.04中不可用。我正在使用apache2服务器。我已经尝试了您的命令,它在我这方面运行良好。我建议您可以查看
/etc/apache2/httpd。conf
文件,以确保已添加include-enabled文件夹。能否访问Linux服务器中的lcoalhost:5000/WeatherForeCast?我使用了curl“”命令及其工作原理。我建议您可以尝试按照此操作将conf文件添加到正确的文件夹中,然后重试。我尝试了本文。httpd目录在ubuntu 18.04中不可用。我正在使用apache2服务器。我已经尝试了您的命令,它在我这方面运行良好。我建议您可以查看
/etc/apache2/httpd。conf
文件,以确保已添加include conf enabled文件夹。
cp -R * /var/WebApi/

vi /etc/systemd/system/kestrel-webapplication4.service

[Unit]  
Description=Aspnet Core Web Api running on Ubuntu 18.04  
[Service]  
WorkingDirectory=/var/WebApi  
ExecStart=/usr/bin/dotnet /var/WebApi/webapplication4.dll  
Restart=always  
RestartSec=10  
SyslogIdentifier=dotnet-demo  
User=www-data  
Environment=ASPNETCORE_ENVIRONMENT=Production  
[Install]  
WantedBy=multi-user.target



sudo systemctl enable /etc/systemd/system/kestrel-webapplication4.service

sudo systemctl start kestrel-webapplication4.service