VS使用WEB DEPLOY发布.NET Core程序

 

背景是这样的,公司有两台服务器,平时一台备用,另一台做为主生产机器。当有大量补丁或者安装什么东西需要重启的时候,交其中一台直接关掉IIS,然后重启即可,此时另一台负责处理用户请求。

之前一台服务器一个网站的时候,发布都是远程上去,然后复制开发机器pubish目录下的文件过去。这种情况有几个弊端:

  1. 每次复制过去的文件量巨大。
  2. web.config难以把控,虽然使用Release和Debug来控制连接字符串,但是,必然不如web.config来得正规。
  3. 每次要登陆远程机器,有时候剪切板无法共享,需要使用驱动器共享来复制文件,然后还要解压之类的操作。容易出现问题。

使用web deploy发布的话,带来了哪些改变:

  1. 不再需要远程登陆服务器,减少出错机率。多台服务器发布时效率高。
  2. 文件量明显减少。
  3. 控制vs在发布前都提交一个svn版本,使用svn作为备份,下次出问题时,只需要回滚到上一个版本,然后进行发布即可。
  4. 多个网站操作方便,不需要多个文件夹来回切换。
  5. 不知道是不是错觉,我感觉发布的速度快很多。

使用的方法

环境需要:

  1. web platform installer。(WEB PI,其实是用来安装web deploy用的,但是我没用,我直接在官网下载的)
  2. 安装【管理服务】
  3. 安装web deploy。

操作:

    1. 如果有WEB PI,则直接使用它先安装最新版WEB DEPLOY(本文使用WEB DEPLOY3.6)。
    2. 如果没有WEB PI,或者不想用它安装,就直接搜索微软官网的WEB DEPLOY,然后分别安装。
    3. 检测系统【服务】中的[Web Management Service]有没有打开,没有打开的话,请打开。
    4. 在IIS中,选择服务器结点,然后在内容里面打开【管理服务】,右边操作栏里面停止服务,把【启用远程连接】前面复选框选上。然后选在下面的使用windows凭据或IIS用户。点右边的应用,然后启动服务。
    5. 选中你要发布的网站的站点节点,在内容里面打开【IIS管理器权限】,进入之后,右击鼠标,选【允许用户】,然后可以输入IIS用户,也可以输入windows的用户。这个用户将在vs里面被作为远程发布的凭证。
    6. 打开vs,右击项目名,点发布,输入刚刚那台服务器的IP地址,输入用户名和密码,在【站点名称】的地点输入服务器中对应网站的网站名称,如果是虚拟目录的二级站点,请将名称用/隔开。
    7. 然后点击vs发布中的【验证连接】,如果成功,则ok。不成功,自行查找问题。
    8. 补充.NET Core发布在配置完成之后发布提示ERROR_CERTIFICATE_VALIDATION_FAILED错误,解决方法:
      1. 打开Properties/PublishProfiles/xxx.pubxml文件
      2. 在PropertyGroup节点内加入<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
      3. 保存后重新发布

.NET Core在WindowsServer服务器部署及发布的更多相关文章

  1. Windows 服务器部署 asp.net core

    踩坑日记与 Windows 服务器部署 asp.net core 指南. 准备 操作系统:Windows Server 2008 R2 或更高版本 文件: Microsoft Visual C++ 2 ...

  2. Powered by .NET Core 进展:第5次发布尝试(Windows部署)

    (图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...

  3. Linux服务器部署.Net Core笔记:目录

        目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...

  4. Asp.net Core 项目API接口服务器部署

    Windows server 2008服务器部署: DotNetCore.1.0.0.RC2-WindowsHosting 或者DotNetCore.1.0.5_1.1.2-WindowsHostin ...

  5. ASP.NET Core ASP.NET Core+MVC搭建及部署

    ASP.NET Core+MVC搭建及部署 一.创建项目: 1.选择ASP.NET Core Web Application(.NET Core) 注意框架 2.选择Web Application: ...

  6. 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...

  7. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  8. 分享阿里云推荐码 IC1L2A,购买服务器可以直接打9折,另附阿里云服务器部署ASP.NET MVC5关键教程

    阿里云推荐码为:IC1L2A 阿里云还是不错滴. 以windows server 2008 R2为例,介绍如何从全新的服务器部署MVC5 站点. 新购买的阿里云服务器是没有IIS的,要安装IIS: 控 ...

  9. 一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布

    一个技术汪的开源梦 —— 目录 微软的 ASP.Net Core 强化了 Nuget 的使用,所有的 .Net Core 组件均有 Nuget 管理,所以有必要探讨一下 .Net Core 组件制作 ...

随机推荐

  1. 用HTML 格式导出Excel

    只需按照如下格式写就可,在<head> 里面嵌套table,必须修改html的命名空间,加上一些描述.保存为xls文件 <html xmlns:x="urn:schemas ...

  2. ubuntu16安装KVM

    apt install qemu-kvm libvirt-bin apt install openvswitch-switch

  3. Thinking in scala (5)----高阶函数*

    高阶函数是函数式编程里面一个非常重要的特色,所谓的高阶函数,就是以其它函数作为参数的函数. 下面以一个小例子演示Scala的高阶函数特性,非常有意思,也非常强大. 首先看这么一个程序: code1: ...

  4. 1、安卓数据存储机制——sharedPreference

    项目中用到的数据存储方式: 1.这个项目里的“个人标签“.”个性签名“页面的文字存储——sharedPreference:我们项目中用到的Preference来保存用户编辑的标签.签名内容,并支持用户 ...

  5. Grid (read-only) objects and methods (client-side reference)获取子表单对象的一些方法 Crm 2016

    https://msdn.microsoft.com/en-us/library/dn932126.aspx#BKMK_GridControl Updated: November 29, 2016 A ...

  6. java短路问题

    java短路问题 短路运算符就是我们常用的"&&"."||",一般称为"条件操作". class Logic{ public ...

  7. STM8S003/005/007芯片解密单片机解密程序提取复制经验分享!

    STM8S003/005/007芯片解密单片机解密程序提取复制 芯片解密型号: STM8S003K3T6,STM8S005K6T6,STM8S007C8T6,STM8S003F3P6 STM8S005 ...

  8. eclipse 工具栏修改

    本来和同学约好一起去吃饭的,刚电话说有亲戚过来了,叫我一起去吃 哪有那个闲心,去陪他们吃饭 刚好,把这个一起写了 相信很多人会很烦,eclipse的工具栏太多了,折了一行下来,看着不好看,还烦(本人觉 ...

  9. 2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)

    Core Data 使用 “带符号的整数”,通常我们会选择Integer 32,如果不够,可以升级为Integer 64 (第3章),通过升级托管对象模型. 这三种类型对应的特性(Property)类 ...

  10. DELPHI判断是否64位操作系统

    function IsWin64: Boolean;var  Kernel32Handle: THandle;  IsWow64Process: function(Handle: Windows.TH ...