对于 FDD,仅部署应用程序和第三方依赖项。 不须要部署 .NET Core,由于应用将使用目标系统上存在的 .NET Core 版本。 这是定目标到 .NET Core 的 .NET Core 和 ASP.NET Core 应用程序的默认部署模型。html
优势web
① 不须要提早定义 .NET Core 应用将在其上运行的目标操做系统。 由于不管什么操做系统,.NET Core 的可执行文件和库都是用通用的 PE 文件格式,所以,不管什么基础操做系统,.NET Core 均可执行应用。windows
② 部署包很小。 只需部署应用及其依赖项,而无需部署 .NET Core 自己。安全
③ 许多应用均可使用相同的 .NET Core 安装,从而下降了主机系统上磁盘空间和内存使用量。服务器
这种模式是跨平台的,只要在对应平台装上runtimes,而后把发布包作成可移植的,同一个发布包就能够跨平台了。app
缺点框架
① 仅当主机系统上已安装你设为目标的 .NET Core 版本或更高版本时,应用才能运行。函数
② 若是不了解未来版本,.NET Core 运行时和库可能发生更改。 在极少数状况下,这可能会更改应用的行为。工具
对于独立部署,能够部署应用和所需的第三方依赖项以及生成应用所使用的 .NET Core 版本。 建立 SCD 不包括各类平台上的 .NET Core 本机依赖项,所以运行应用前这些依赖项必须已存在。开发工具
从 NET Core 2.1 SDK(版本 2.1.300)开始,.NET Core 支持修补程序版本前滚。 在建立独立部署时,.NET Core 工具会自动包含你的应用程序所指向的 .NET Core 版本的最新服务的运行时。 (最新服务的运行时包括安全修补程序和其余 bug 修复程序。)服务的运行时不须要存在于你的生成系统上;它会从 NuGet.org 自动下载。
FDD 和 SCD 部署使用单独的主机可执行文件,使你可使用发布者签名为 SCD 签署主机可执行文件。
优势
① 能够对与应用一块儿部署的 .NET Core 版本具备单独的控制权
② 请放心,目标系统能够运行你的 .NET Core 应用,由于你提供的是应用将在其上运行的 .NET Core 版本
缺点
① 因为 .NET Core 包含在部署包中,所以必须提早选择为其生成部署包的目标平台
② 部署包相对较大,由于须要将 .NET Core 和应用及其第三方依赖项包括在内。
他不能跨平台,每一个包都有对应的运行时,因此一份代码只能在对应的平台使用。
3. 部署的手段:文件系统、Web部署、FTP。
服务器上须要安装.Net运行时和支持Module,下载地址:https://dotnet.microsoft.com/download/dotnet-core/2.2
PS:runtime是dotnet程序的运行时,hosting是IIS支持dotnet core程序必备的模块(安装完后,IIS模块中会有AspNetCoreModuleV2模块),WebDeploy v3.6 是服务器端支持“web部署”方式必备的程序,而安装WebDeploy微软推荐经过“web platform”这个软件来安装(相似于360软件管家的性质)。
特别注意: 若是仅仅是本地运行,安装runtimes就好了,若是是服务器上部署,要安装dotnet-hosting,里面已经包含了对应版本的runtimes。
下载地址:https://dotnet.microsoft.com/download/dotnet-core
(1). 安装dotnet-hosting,去【https://dotnet.microsoft.com/download/dotnet-core/2.2】地址,下载dotnet-hosting程序。
(2). 在WinServer2016上安装【dotnet-hosting-2.2.4-win.exe】,安装过程以下图:
(3). 安装完毕后,cmd命令【dotnet --list-runtimes】查看版本为 2.2.4 。在IIS模块中查看有 AspNetCoreModuleV2.
PS:固然也能够直接安装Web Deploy,下载地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=43717
(2). 在里面搜索 web deploy,进行 安装:
(2). 点击,发布进行发布,以下图:发布成功。
补充:此处可能第一次连接上不上去,发布失败,这个时候,去服务器上把这个项目关闭,而后进行发布,发布成功后,在把该项目打开,之后再发布就正常了。
假设还有问题,在发布文件夹下新建要给 App_Offline.htm便可,用于关闭IIS。
1. 服务端添加FTP发布
(1). 选中IIS中的项目,添加FTP发布,步骤以下图:
添加完毕,点击绑定,发现里面多了一个FTP的21端口的地址。
注:若是是阿里云或者其它云服务器,这里使用项目端口8015和FTP的21端口,须要在服务器的管理端配置一些,而后还要在服务器的防火墙中配置一下入站,部分操做以下图:
(2) 在VS中进行发布,选择FTP的模式发布,配置 服务器地址、登陆帐号、密码、项目地址,点击发布便可。
五. Windows服务的形式发布
不少状况下,咱们不使用IIS,而是将Asp.Net Core程序发布成Windows服务的形式,步骤以下:
1. 经过Nuget安装程序集【 Microsoft.AspNetCore.Hosting.WindowsServices 】
该项目发布在win10下,以下图
(1) 建立服务:sc create MyService binPath= "c:\svc\AspNetCoreServiceSample.ex"
(2) 启动服务:sc start MyService
(3) 检查服务状态:sc query MyService
(4) 中止服务:sc stop MyService
(5) 卸载服务:sc delete MyService (删除前必须先中止服务)
来源:https://www.cnblogs.com/yaopengfei/p/10733772.html