ASP.NET 发布到 Linux

在过去,ASP.NET 是一个只能在 Windows 操作系统上运行的框架。然而,自从 ASP.NET Core 的发布以及 .NET Core 的开源后,开发者们可以将 ASP.NET 应用程序轻松地部署在 Linux 服务器上。ASP.NET Core 是一个跨平台的开发框架,具有高性能、可扩展性和灵活性。本文将介绍如何将 ASP.NET 应用程序发布到 Linux 服务器上,并提供详细的代码示例。

准备工作

在开始之前,我们需要完成以下准备工作:

  1. 安装 .NET Core SDK:在 Linux 服务器上安装最新版本的 .NET Core SDK。可以从官方网站 下载并按照官方文档进行安装。

  2. 配置 Linux 服务器:确保 Linux 服务器上已安装所需的依赖项,如运行 ASP.NET Core 应用程序所需的环境、数据库等。

创建 ASP.NET Core 应用程序

首先,我们需要创建一个 ASP.NET Core 应用程序。可以使用以下命令在命令行中创建一个空的 ASP.NET Core Web 应用程序:

dotnet new web -n MyAspNetApp
cd MyAspNetApp

执行以上命令后,我们将得到一个名为 MyAspNetApp 的文件夹,其中包含一个空的 ASP.NET Core Web 应用程序。

编译和运行应用程序

接下来,我们需要在本地开发环境中编译和运行应用程序,以确保一切正常。在命令行中执行以下命令:

dotnet build
dotnet run

如果一切顺利,可以在浏览器中打开 http://localhost:5000 来访问应用程序。

发布应用程序

在发布应用程序之前,我们需要对应用程序进行一些配置。在应用程序的根目录下创建一个名为 appsettings.json 的文件,用于存储应用程序的配置信息。以下是一个示例 appsettings.json 文件:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=127.0.0.1;Database=MyDatabase;User=MyUser;Password=MyPassword"
  }
}

请根据实际情况修改数据库连接字符串。接下来,在 Startup.cs 文件中添加以下代码来加载配置文件:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
{
    // 添加配置服务
    services.Configure<ConnectionStringOptions>(Configuration.GetSection("ConnectionStrings"));
    // ...
}

请确保在 Startup.cs 文件的顶部添加 using Microsoft.Extensions.Configuration; 以引入 IConfiguration 接口。

完成配置后,我们可以使用以下命令发布应用程序:

dotnet publish -c Release -o Publish

执行完上述命令后,将在应用程序的根目录下生成一个名为 Publish 的文件夹,其中包含已发布的应用程序的文件。

部署到 Linux 服务器

我们已经成功地将应用程序发布到本地文件夹中,现在我们可以将应用程序部署到 Linux 服务器上。首先,将发布文件夹复制到 Linux 服务器上的任意位置。接下来,使用 SSH 登录到 Linux 服务器,并导航到应用程序的发布文件夹。

ssh user@server
cd /path/to/publish

在 Linux 服务器上,我们需要安装 ASP.NET Core 运行时环境,并执行以下命令来启动应用程序:

dotnet MyAspNetApp.dll

如果一切顺利,可以在浏览器中打开 http://<服务器 IP 地址>:5000 来访问应用程序。

总结

通过本文的介绍,我们了解了如何将 ASP.NET 应用程序发布到 Linux 服务器上。我们可以使用 .NET Core SDK 在本地开发环境中编译和运行应用程序,然后使用 dotnet publish 命令将应用程序发布到一个文件夹中。最后,我们可以将发布文件夹复制到 Linux 服务器上,并使用 ASP.NET Core 运行时环