不管你是使用.net core开发的是web api还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.net core程序部署到IIS的朋友,可以看看这篇手把手教你部署.net core程序的教程。

将.net core程序部署到IIS总体需要经过以下3个大步骤,其中在IIS上配置网站有些比较繁琐,我都会逐一给出详细步骤。

安装IIS和.net core运行时程序

部署.net core程序首先要确保你服务器上的IIS环境要安装好,不知道怎样在服务器上安装IIS,请先自行搜索一下;确保IIS安装好了后,还需要安装.net core的运行时,运行时的程序文件可以在官网下载最新版本安装,点击这里直达官网下载运行时

.net core环境运行时

 

安装好了后,如果你在IIS上模块里面看到AspNetCoreModule,表示安装成功。

怎样查看AspNetCoreModule模块

 

进入IIS后,先点左侧你的服务器上IIS名称,然后会出现上图右边所示的模块,点击进就会在下图右侧出现IIS上众多的模块,当你安装了运行时后,就会出现 AspNetCoreModule 这个东东,表示安装成功,已经具备在IIS上运行.net core程序的环境了。

 

基本环境配置好了后,下面该发布.net core 程序了。

以文件的形式发布.net core程序到指定目录

将.net core程序部署到IIS上,可以做到一键部署,即使在远程服务器上也是可以做到一键部署,这方面的文章我在去年写了这篇通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程的文章,感兴趣的朋友可以看看。

VS2019发布.net core程序提供了5种方式,本文为了演示目的就以文件的形式发布.net core程序到指定目录的方式来说明发布过程。打开你的.net core程序解决方案,在.net core程序上右键,点发布,如下图所示:

开始发布.net core程序

点击发布(Publish)后 会出现下面的选择设置框,然后根据你的需要设置好保存目录即可,这里选择Folder

指定发布目录

发布成功后会有如下提示:

发布成功

发布成功后,找到这个目录,将其打包上传到服务器上,本文这儿纯演示,就直接在本机操作,就略过了复制文件到安装了IIS的服务器上的步骤

IIS上面建立网并配置好网站设置

这步操作一般是在远程服务器上操作,本文演示,就直接在本地环境搞了。

IIS上建立网站

在IIS上建立网站,需要提前将发布文件复制到服务器的随意目录,不一定要放在C盘的wwwroot目录,你可以放在任意位置。在服务器上打开IIS,为了方便,你可以在服务器上建立一个IIS的快捷方式,不会建请自行google。

(1)在IIS左侧管理界面,看到网站,直接右键,添加网站

添加网站

右键添加网站后,会出现下面的添加网站界面,设置好网站名称,我一般习惯性的命名为域名的名称,如你申请的域名是 www.ccav.com,则设置名称为www.ccav.com。物理路径就是上传到服务器上的发布文件保存的目录,本机演示上文指定的是C盘,ccav.com目录,指向它即可。主机名可以设置为域名,IP地址,设置为域名前提需要你的域名解析了才行,不然访问不了;还有一种方式就是修改host文件的方式,下文会讲到。主机名可以在添加网站后修改,意思就是可以修改绑定的域名。

.net core网站设置

(2)修改应用程序池为无托管代码

在上面步骤添加网站完毕后,会自动创建和网站名称相同的应用程序池,通俗来说应用程序池就是服务器分配给网站的一个资源集合,管理着网站的内存,进程等内容,如你的网站使用了缓存,缓存分配的内存也是受应用程序池管理的,应用程序池一回收,缓存就全部失效。所以一般的做法都是使用分布式缓存,如memcahe或才redis。所以在asp.net 时代,网站慢了时,重启大法很好用也是这个道理。

网站应用程序池

如果你的程序要和数据库打交道,数据库和网站没有分开时,则还要修改应用程序标识,在应用程序池上右键–>高级设置,弹出的窗口上面修改即可。

高级设置

在打开的高级设置窗口里面,有很多设置项,不懂的别乱整,感兴趣的,可以自行研究。但对于.net core程序来说,连了数据库最有可能修改的就是高级设置里面的标识项,标识设置就是给应用程序相应访问数据库、执行文件读写的权限等。

修改标识,一般不用修改。

(3)修改host文件设置(非必须操作)

因为在上面的操作中,我将主机名设置为了www.ccav.com,在完成了本节点第2个步骤后,你就去打开网站浏览肯定是打不开的,除非在上面的操作中,你指定的主机名是IP地址,然后在浏览器中,通过输入IP地址的方式来打开,这样是可以正常访问到你的网站的,如果指定的是IP地址,当前操作就可以省略掉。

在指定主机名是,使用一个域名的方式,更接近于真实环境的访问,可以发现很多你使用IP地址不能发现的问题。

修改host文件操作过程如下:

你可以通过运行命令直接打开host文件:

通过运行窗口打开host文件

host文件所在目录是: c:\Windows\System32\drivers\etc\hosts ,然后使用记事本打开修改即可,修改后的host文件如下:

修改后的host文件

重要提示:修改后如果不能保存,说明你没有管理员权限,请先给你windows账号设置为管理员权限,如下图所示:

不能保存host文件,需要先给管理员权限

(4)打开网站浏览一下

经过上面的一系列设置,就已经完成了将 .net core程序部署到IIS的所有步骤,你可以在浏览览器里面输入IP地址或者域名(主机名指定为域名)的形式,能正常打开则表明部署成功。

.net core网站部署成功

后记

如果部署时,指定的是域名,但那个域名不是你的或者你们公司的,或者也没有解析,我们可以通过修改host的方式来实现使用域名来访问;在局域网内,或者测试环境下,其他人要访问你的网站,也只需要修改一下host文件即可,添加一条记录,将IP地址指向服务器地址,然后就可以通过输入域名的方式来打开所部署的网站了。

原文链接:https://jhrs.com/2019/32202.html

使用VS 2019发布.net core程序并部署到IIS的最新教程的更多相关文章

  1. 来个干货——使用VS2019发布.NET Core程序并部署到IIS的最新教程

    使用VS2019发布.NET Core程序并部署到IIS,不管你是使用.NET Core开发的是Web API还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.NET Core ...

  2. ASP.NET MVC - 发布web应用程序、部署到IIS

    发布项目 右击项目 - 发布 选择IIS - 点击发布 发布方法 - 文件系统,目标位置 - 选择与项目所在目录不同的目录(也即,指定一个发布生成文件的目录),文件发布选项 - 不选 - 点击发布 安 ...

  3. 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程

    最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...

  4. 关于.net core程序的部署

    最近发布.net core程序的时候,发现它是可以独立部署的,它支持如下两种部署方式: 依赖框架的部署FDD.只发布我们的程序,运行前用户需要手动安装.net core runtime. 独立部署SC ...

  5. 运行Vue在ASP.NET Core应用程序并部署在IIS上

    前言 项目一直用的ASP.NET Core,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用ASP.NET Cor ...

  6. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  7. 把Asp.net Core程序代码部署到Ubuntu(不含数据库)

    今天记录一下第一次把.net core 程序发布到linux系统.linux用的是ubuntu Server 18.04版本.运行的IDE是vs 2019,发布出来是.net core 2.2版本. ...

  8. .Net Core程序的部署(FDD与SCD)

    最近打算做一个公司的代码走查工具,思前想后觉得正好可以当作一个Core的实践机会,于是上官网看了下资料,顺便作了一下笔记方便以后查阅. 注1:这里的Core程序部署指的是.Net Core而非Asp. ...

  9. ASP.NET Core开发期间部署到IIS自定义主机域名并附加进程调试

    在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...

随机推荐

  1. iviewUI框架,使用table表格内render下拉框select被遮盖问题

    使用props:{  transfer:true },即可   1.原本代码:

  2. 手写Mybatis,还需要后面调整下

    参考博客 https://blog.csdn.net/Kurozaki_Kun/article/details/81482212 个人理解 读取Mybatis配置文件 数据库连接信息 读取Mapper ...

  3. 【LeetCode】并查集 union-find(共16题)

    链接:https://leetcode.com/tag/union-find/ [128]Longest Consecutive Sequence  (2018年11月22日,开始解决hard题) 给 ...

  4. java ArrayList的基本使用

    package java06; /* 数组的长度是不可以发生改变的 Arraylist 集合的长度可以发生改变 对于ArrayList来说,有一个尖括号<E>代表泛型 泛型:就是装在结合中 ...

  5. procixx和最近调试的坑

    流程: 1.procixx/vivado 配置soc硬件信息,导出FSBL.out: 2.配置uboot dts,生成u-boot (需要打开的硬件 配置为status = "okay&qu ...

  6. vue新建项目之标准路由配置--父子嵌套界面

    配置路由所有用到的地方总共四步或者说四处 1.index.js(src--router--index.js) 父子界面嵌套---需要配置子路由 import Vue from 'vue' import ...

  7. 注意!黑客可以通过CSS3功能攻击浏览器

    随着通过HTML5和CSS3引入的惊人数量的功能,浏览器的攻击面也相应增长.因此,这些功能之间的交互可能会导致意外行为影响用户的安全,这并不奇怪.在这篇文章中,中国知名黑客安全组织东方联盟描述了这样一 ...

  8. CONNECT_BY_ROOT

    1.select * from  EMP t  where t.deptno = 10;   EMPNO     ENAME     JOB     MGR     HIREDATE     SAL  ...

  9. Mac OS 10.15系统入门教程 系统语言输入法详解

    对于一些Mac新手来说呢还不知道偏好设置到底是什么?有什么用处?其实Mac系统内的几乎所有的系统相关的设置都会在系统偏好设置内出现. 切换系统语⾔在语言与地区设置中拖拽左侧的语言条目就可以切换系统的语 ...

  10. Web核心之Response对象

    http协议的响应部分 格式: HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 101 Date: Wed, ...