不管你是使用.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. MySQL01---简介及安装

    目录 MySQL简介及安装 DBA工作内容 DBA的职业素养 MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 关系型数据库(RDMS)与非关系型数据库( ...

  2. 左上角小猫猫直达博主GitHub \-_-/

    GitHub上有博主代码工程学习笔记啥的,由于推送比较方便所以有些学习笔记就没有上传到博客园

  3. Go copy 的使用

    copy 可以将后面的 第2个切片的元素赋值copy 到第一个切片中 package main; import "fmt" func test () { s1 := []int{1 ...

  4. Codeforces 963E Alternating Sum 等比数列+逆元

    题目大意: 看一下样例就明白了 基本思路: 题目中明确提到k为一个周期,稍作思考,把k项看作一项,然后发现这是个等比数列,q=(b/a)^k, 然后重点就是怎样处理等比数列求和表达式中的除法,这个时候 ...

  5. 前端每日实战:65# 视频演示如何用纯 CSS 创作一个摇摇晃晃的 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/oyJvpe 可交互视频 此视频是可以 ...

  6. SPOJ7258 SUBLEX - Lexicographical Substring Search

    传送门[洛谷] 心态崩了我有妹子 靠 我写的记忆化搜索 莫名WA了 然后心态崩了 当我正要改成bfs排序的时候 我灵光一动 md我写的i=0;i<25;i++??? 然后 改过来就A掉了T^T ...

  7. Oracle 行转列(pivot、wm_concat、decode)使用总结

    CREATE TABLE CC (Student NVARCHAR2(2),Course NVARCHAR2(2),Score INT ); INSERT into CC select N'张三',N ...

  8. threeJS射线拾取机制及案例

    前言 在浏览器中浏览三维图形的时候,有时想要与三维图形之间做一些点击事件和交互操作,其中比较常用的一个解决方案就是使用Raycaster对象来实现(射线拾取). 基础知识 世界坐标系:webGL中,世 ...

  9. Raspbian 在虚拟机上运行,运行Flask,供宿主机访问

    Raspbian 在虚拟机上运行,启动Flask,供宿主机访问 参考ref 1, 在virtualbox上跑起来Raspbian OS 参考ref 2, 在Raspbian上安装并运行Falsk, 注 ...

  10. Struts2基础-3 -继承ActionSupport接口创建Action控制器+javaBean接收请求参数+ 默认Action配置处理请求错误 + 使用ActionContext访问ServletAPI

    1.目录结构及导入的jar包 2.web.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <web ...