在Azure Linux Ubuntu 18.04虚拟机上发布Asp.net核心3.1 Web Api
我正试图在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在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
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