Home / Blog

如何在 Ubuntu 20.04 LTS 中运行 dotnet

SplatDev · January 2, 2024 ·3 分钟阅读

在 Ubuntu 20.04 LTS 与 aaPanel 中运行 dotnet

在 Ubuntu 中运行 Umbraco

在 Linux 上安装 .NET 应用可以带来多方面的好处:

  1. 跨平台兼容性:.NET Core 作为 .NET 的跨平台版本,使应用能够在包括 Linux 在内的多种操作系统上运行。这扩大了应用在不同环境下的覆盖范围和可用性。
  2. 性能与可靠性:Linux 以其性能和稳定性而著称。在 Linux 上运行 .NET 应用可以充分利用这些特性,有望带来更好的应用性能和可靠性。
  3. 开源与社区支持:Linux 和 .NET Core 都是开源的,这意味着它们都受益于强大的社区支持和持续的改进。这可以带来更好的安全性、更多的功能以及更快的 Bug 修复。
  4. 成本效益:对于希望降低运营成本的企业或开发者而言,Linux 是托管应用更具成本效益的选择。许多 Linux 发行版都可免费获取,从而降低了软件许可的成本。
  5. 与现有 Linux 基础设施的集成:对于已经在服务器或 IT 基础设施其他部分使用 Linux 的组织来说,在 Linux 上安装 .NET 应用可以确保在其现有生态系统内实现无缝集成与管理。
  6. 现代开发实践:Linux 上的 .NET Core 支持现代开发实践与工具,包括使用 Docker 进行容器化,而 Docker 在 Linux 中得到原生支持。这有助于实现更高效的开发、测试和部署流程。
  7. 安全性:Linux 常因其安全特性而广受赞誉。在 Linux 上运行 .NET 应用可以受益于这些安全方面的优势,为应用提供更安全的运行环境。

总而言之,在 Linux 上安装 .NET 应用可以在兼容性、性能、成本、集成、现代开发实践和安全性等方面带来优势,使其成为许多开发者和组织颇具吸引力的选择。

按照以下概述的步骤来实现这一点:

安装 aaPanel
可选,但对维护很有帮助:

安装脚本将在几分钟内完成,并会安装该托管面板,为你提供维护站点的实用工具。

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb
# Clean up
rm packages-microsoft-prod.deb
# Update packages
sudo apt update
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-6.0
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-7.0
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-8.0
sudo nano /etc/systemd/system/kestrel-helloapp.service
[Unit]
Description=Example .NET Web API App running on Linux
[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
sudo systemctl enable kestrel-helloapp.service
sudo systemctl start kestrel-helloapp.service
sudo systemctl status kestrel-helloapp.service

并确保将反向代理设置为你为 dotnet 应用配置的端口(默认是 5001)

此时,你已经可以部署你的网站并访问它了。

如果你打算在 Ubuntu 上使用 MSSQL,请务必按照以下步骤进行安装:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
systemctl status mssql-server --no-pager
sudo ufw allow 1433
ufw deny 1433
ufw deny 22
ufw deny 21
ufw deny 20

Want more articles like this?

Subscribe for updates on .NET, Umbraco, nopCommerce, and software engineering.

Get in touch →