65.9K
CodeProject 正在变化。 阅读更多。
Home

在 IIS 上部署 ASP.NET Core Web API

starIconstarIconstarIconstarIconstarIcon

5.00/5 (5投票s)

2020 年 2 月 8 日

CPOL

7分钟阅读

viewsIcon

37284

如何在 IIS 上创建并部署你的第一个 ASP.NET Core Web API

在 IIS 上部署 ASP.NET Core Web API 是一项简单的任务,一旦你理解并遵循了准备开发和部署环境的正确步骤。

在微软的 Visual Studio 团队几天前宣布了其旗舰产品的一些重大更新,包括 Dot Net Core 3.0、Visual Studio 16.3、C# 8.0 等等,我认为开始学习这些出色功能和产品的相关知识会很有帮助。我知道这些都是非常庞大的话题,但我会在接下来的文章中尝试讨论不同的主题。

对于这篇文章,我想与你分享一篇关于如何在 IIS 上部署 ASP.NET Core Web API 的指南。

Visual Studio 2019 和 Dot Net Core 3.0

你需要下载并安装的第一个也是最重要的东西是 最新版本的 Visual Studio 2019,撰写本文时,该版本是 **VS 16.3**。

此版本的 Visual Studio 2019 支持最新版本的 Dot Net Core SDK,即 3.0。请注意,你无法使用 Visual Studio 2017 来开发 Dot Net Core 3 应用程序。

通常情况下,你无需单独下载 SDK,因为你已经安装了最新版本的 Visual Studio 2019。但是,如果打开 Visual Studio 2019 后,由于任何原因都看不到 Dot Net Core 3 选项,那么你可以从 微软官方网站 下载 Dot Net Core SDK。

开源社区与微软一起付出了巨大的努力来不断更新和改进 Dot Net Core SDK 和运行时,因此你可能会在接下来的几天里注意到 Dot Net Core SDK 和运行时的更新版本。

Windows Server 上的 Dot Net Core Runtime

将 Dot Net Core Runtime 3.0(Windows 的托管包安装程序)下载并安装到你的托管 Windows 服务器上。这应该是一个非常简单的步骤。

如果你无法进行此安装,你可以要求你的服务器管理员为你进行安装,或者,你必须将 ASP.NET Core Web API 作为自包含部署来部署,这样就不需要在托管服务器上安装 Dot Net Core Runtime。所有必需的运行时库都将包含在应用程序部署容器中。

这样,当你的应用程序上线生产环境时,你可以对其行为有信心,它会和你测试时一样,并且服务器上的 Dot Net Core 框架的任何更新都不会影响你的应用程序。

但其缺点是,与依赖于服务器共享 Dot Net Core Runtime 的框架依赖部署类型相比,你的部署大小会明显更大。

在服务器上启用 IIS

你的服务器上还需要启用的另一项功能是 Web IIS 功能。你的托管服务器上可能已经启用了此功能,但是你必须验证它是否已安装在那里。

在你的 Windows Server 上,打开 **服务器管理器**,然后是 **IIS**,然后是“管理”,选择“**添加角色和功能**”,然后转到“**功能**”,然后查看 Web IIS 复选框是否已启用,如果未启用,则继续安装它。

IIS 应用程序池

为了让 Dot Net Core 应用程序在 IIS 下运行,我们需要创建一个新的应用程序池,并选择 **无托管代码** 选项。

IIS 应用程序池不会对 Dot Net Core 应用程序的运行时产生任何影响,它仅作为 **反向代理** 工作。

要创建应用程序池,请打开你的 IIS 管理器,然后导航到 **应用程序池**,然后单击“**添加应用程序池**”,将出现一个对话框,为其命名,例如“**DotNetCore**”。

在 .NET Framework 版本中,选择“**无托管代码**”,然后将最后一个选项保持原样,然后按 **确定**。

你应该能在应用程序池面板中看到新创建的应用程序池。

IIS 网站

既然应用程序池已经准备好,现在我们需要在 IIS 网站下创建一个新网站。因此,从 IIS 管理器的左侧菜单,右键单击“网站”,然后选择“**添加网站**”。

在对话框中,为其命名,例如“**My Asp Net Core Web Api**”,将其分配给新创建的应用程序池“**DotNetCore**”,并选择你网站文件夹的物理路径,确保你在服务器的驱动器中任意位置创建一个文件夹。

在绑定部分,请确保为 http 提供一个新的绑定端口,例如 5100,为 https 提供 6100,或者根据你当前的 IIS 情况选择其他合适的值,你可能有其他分配了不同端口的网站。

创建 ASP.NET Core Web API 项目

打开 Visual Studio 2019,创建一个新的 ASP.NET Core Web 应用程序项目

为其命名并指定文件夹路径。

然后选择 API 作为项目模板,最后按 **创建**。

Visual Studio 完成项目创建后,你可以尝试运行该应用程序。

按下 Visual Studio 上的 **运行** 按钮,它将开始构建 Dot Net Core Web API 项目,API 将在 IIS Express 下托管,并且会打开一个本地浏览器,其中包含 localhost 和某个分配的端口,以及默认的控制器和操作,并在浏览器中显示一些结果。

如果你在浏览器中看到一些 JSON 输出,则表示你的第一个 ASP.NET Core Web API 正在你的机器上运行。

发布你的 ASP.NET Core Web API

现在,让我们也让它在你的 Windows Server 上正常运行。

服务器和 IIS 都已准备好运行我们的网站,所以我们只需要将我们的 ASP.NET Core Web API 发布文件发布到服务器上的空文件夹。

右键单击项目名称,然后选择 **发布**。

之后,在发布设置中,选择文件夹位置,并将路径设置为你服务器中的新文件夹(如果新文件夹可以通过你机器的共享链接访问)。

或者将发布路径设置为你的本地计算机,然后你可以直接复制粘贴文件到你服务器上的文件夹。

接下来,单击文件夹位置下的 **高级...** 链接。

然后选择部署模式为 **框架依赖**(因为我们已经在 Windows Server 中安装了 Dot Net Core Runtime 3.0)。

选择目标运行时为 win-x64(这应该基于目标计算机的操作系统版本),然后按保存,最后按 **发布**。

现在 Visual Studio 将打包你的应用程序并将所有必要的文件写入新文件夹。

在你的 Visual Studio 中看到“发布成功”的消息或看到上面具有正确修改日期的文件后,切换回你的 Windows Server,验证新文件夹是否包含已发布的文件,然后转到 IIS 管理器下你新创建的网站,右键单击它,然后单击浏览,然后将正确的控制器名称添加到 URL 中。

你应该会在机器的浏览器中看到一些类似天气相关的随机 JSON 结果。

恭喜!你已在 IIS 上创建并部署了你的第一个 ASP.NET Core Web API。

注意:你可以通过打开已发布文件夹中的 _Web.config_ 文件,并将 stdoutLogEnabled 属性值更改为“true”来启用 ASP.NET Core Web API 日志记录,然后你将在已发布 API 文件下的新文件夹中看到日志文件。

好了,你已经成功在 IIS 上部署并运行了 ASP.NET Core Web API。

如果一切顺利,请在评论中告诉我。

更多阅读,请查看这篇文章 关于 Dot Net Core 和 Visual Studio 2019 的最新更新

历史

  • 2020年2月6日:初始版本
© . All rights reserved.