在IIS上部署ASP.NET Core Web API的方法步骤

对于本文,我想与您分享有关如何在IIS上部署ASP.NET Core Web API的指南。我将指导您安装Visual Studio 2019,.NET Core Runtime 3.0。我还确保我逐步引导您在服务器(Web IIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NET Core Web API项目以及发布ASP.NET Core Web API。

了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NET Core Web API就是一件容易的事。

几天前,Microsoft的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应用程序。

在正常情况下,由于您已经安装了Visual Studio 2019的最新版本,因此不必单独下载SDK,但是,如果您打开Visual Studio 2019并且由于任何原因都看不到Dot Net Core 3的选项,则您可以从Microsoft官方网站下载Dot Net Core SDK。

开源社区与Microsoft共同付出了巨大的努力,以不断更新和改进Dot Net Core SDK和运行时,因此您可能会在接下来的几天中注意到Dot Net Core SDK和Runtime的更新版本。

Windows Server上的Dot Net Core运行时

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

但是,如果您无权执行此安装,则可以要求托管服务器管理员为您执行此安装,否则,您将ASP.NET Core Web API部署为独立的部署,这将赢得不需要在托管服务器中安装Dot Net Core Runtime。所有必需的运行时库将作为App部署容器的一部分包含在内。

这使您对应用程序投入生产后充满信心,使其表现出完全如您所测试的那样,并且服务器的Dot Net Core Framework上的任何更新都不会影响您的应用程序。

但是它的缺点是您的部署大小将大大大于框架相关的部署类型(该类型依赖于服务器中共享的Dot Net Core Runtime)。

在服务器上启用IIS

服务器中必须启用的另一件事是Web IIS功能。您可能已经在托管服务器中启用了此功能,但是,您必须验证是否已在其中安装了该功能。

在Windows Server上,打开“服务器管理器”,然后依次选择“IIS”,“管理”并选择“添加角色和功能”,然后转到“功能”,然后查看是否已启用“Web IIS”复选框,如果没有,请继续进行安装。

IIS应用程序池

为了使Dot Net Core应用程序能够在IIS下运行,我们必须使用nomanaged code选项创建一个新的应用程序池。

IIS应用程序池对Dot Net Core Apps的运行时没有任何影响,它仅用作反向代理。

要创建应用程序池,请打开您的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 Application类型的新项目:

给它一个名称和文件夹路径。

然后选择API作为项目模板,然后最后按Create。

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服务器上也能正常工作。

我们已经在服务器和IIS上准备好了一切来运行我们的网站,因此我们只需要将ASP.NET Core Web API发布文件发布到服务器上的空文件夹中即可。

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

之后,从发布设置中,选择文件夹位置,然后将该路径作为服务器中的新文件夹放置(如果可以通过计算机上的共享链接访问新文件夹)。

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

接下来,单击文件夹位置下的Advanced…链接。

然后选择与框架相关的部署模式(因为我们已经在Windows Server内部安装了Dot Net Core Runtime 3.0)。

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

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

在Visual Studio中收到“已成功发布”消息或看到上面修改了正确日期的文件后,请切换回windows服务器,验证新文件夹中是否包含已发布的文件,然后转到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的最新更新的文章。

到此这篇关于在IIS上部署ASP.NET Core Web API的方法步骤的文章就介绍到这了,更多相关IIS部署ASP.NET Core Web API内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • ASP .NET Core API发布与部署以及遇到的坑和解决方法

    最近在写.Net Core的API,由于之前没接触过Core,所以自己的想法很简单,感觉和.Net都是差不多的东西,发布部署还是按.Net的那一套来,可谓是困难重重,走了不少弯路. 也没什么漂亮的词语,也不是技术大牛,就是抱着学习技术的态度,随手写写这一套流程,以及遇到的问题跟解决方法. 一.安装服务器环境 IIS  Path-->Control Panel\All Control Panel Items\Programs and Features 没细致研究,全装了~ 二.发布API 1.选择

  • 在IIS上部署ASP.NET Core Web API的方法步骤

    对于本文,我想与您分享有关如何在IIS上部署ASP.NET Core Web API的指南.我将指导您安装Visual Studio 2019,.NET Core Runtime 3.0.我还确保我逐步引导您在服务器(Web IIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NET Core Web API项目以及发布ASP.NET Core Web API. 了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NET Core Web API就是一件容易的事.

  • 在IIS上部署ASP.NET Core项目的图文方法

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等).而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,

  • 详解在Azure上部署Asp.NET Core Web App

    在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core的网站呢?Azure 的 Web App 服务是个很好的选择. 下面我们会通过 Visual Studio 创建一个 Asp.net Core demo 应用,然后把这个 demo 应用部署到 Azure Web App.通过阅读本文,您将能了解到如何创建 Asp.NET Core 应用程序和如何在Azure上创建 Web App 并部署

  • ASP.NET Core Web API 教程Project Configuration

    目录 1. 创建新项目 2. launchSettings.json 文件 3. Program.cs 和 Startup.cs 4. 扩展方法和 CORS 配置 5. IIS 配置 6. Startup 类中的其它代码 7. 基于环境的设置 前言: 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,对原文进行了翻译,同时适当删减.修改了一部分内容. 对于某些概念和原理,原书和本文中都没有进行详细描述,如果一一详细介绍,内容就显得臃肿且混乱,我个人是先

  • 详解如何在ASP.NET Core Web API中以三种方式返回数据

    在 ASP.NET Core 中有三种返回 数据 和 HTTP状态码 的方式,最简单的就是直接返回指定的类型实例,如下代码所示: [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { [HttpGet] public IEnumerable<WeatherForecast> Get() { var rng = new Random()

  • 详解ASP.NET Core Web Api之JWT刷新Token

    前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小时,有的一天,有的甚至一个月,这么做当然存在问题,如果被恶意获得访问令牌,那么可在整个生命周期中使用访问令牌,也就是说存在冒充用户身份,此时身份认证服务器当然也就是始终信任该冒牌访问令牌,若要使得冒牌访问令牌无效,唯一的方案则是修改密钥,但是如果我们这么做了,

  • 用 Django 开发一个 Python Web API的方法步骤

    Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架.它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其知名度迅速提升. Django由Django软件基金会(Django Software Foundation)维护,并获得了社区的大力支持,在全球拥有11,600多个成员.在Stack Overflow上,Django大约有191,000个带标签的问题.Spotify,YouTube和Instagram等网站都依

  • 在IIS上部署Go API项目

    问题场景 我这边原先的技术栈主要是 .NET(Core), 所以服务器基本上都是 Windows Server + IIS. 这次有个 API 服务用 Go 重写, 但是部署有点不美, 直接执行黑框框不好看, 也容易丢, 做成服务又不方便更新维护, 想着能不能继续挂载在 IIS 下. 于是乎... 首先想到的是 IIS 下有个 FastCGI 支持, 以前还在 IIS 下部署过 PHP 项目. 搜到 Go 中有个 net/http/fcgi 库, 写个简单服务验证一下, 代码如下: packag

  • .NET Core Web APi大文件分片上传研究实现

    前言 前两天发表利用FormData进行文件上传,然后有人问要是大文件几个G上传怎么搞,常见的不就是分片再搞下断点续传,动动手差不多也能搞出来,只不过要深入的话,考虑的东西还是很多.由于断点续传之前写个几篇,这里试试利用FormData来进行分片上传. .NET Core Web APi文件分片上传 这里我们依然是使用FormData来上传,只不过在上传之前对文件进行分片处理,如下HTML代码 <div class="form-horizontal" style="ma

  • Linux上使用Docker部署ASP.NET Core应用程序

    一.创建 1.创建应用程序 使用ASP.NET Core创建一个MVC应用程序,并修改Home控制器Index视图代码: @{ ViewData["Title"] = "Home Page"; } <div class="text-center"> @*<h1 class="display-4">Welcome</h1> <p>Learn about <a href=&qu

随机推荐