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. 保存后重新发布

最新文章

  1. Android ViewPager打造3D画廊
  2. Python全栈开发【模块】
  3. 高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布
  4. 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)
  5. 【HDU4612】 双连通分量求桥
  6. Sublime Text的使用代码块安装的模块
  7. redis安装过程中遇到的问题
  8. Java数据库缓存思路
  9. octopress command memo
  10. SpringBoot切面控制业务逻辑
  11. 通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助
  12. VirtualBox虚拟磁盘文件.vdi从C盘转移到D盘
  13. Android Studio之SVN打分支、切换分支及合并分支
  14. C# 读取TXT文本数据 添加到数据库
  15. Linux配置本地yum源
  16. ssh: connect to host xx.xx.xxx.xxx port 22: Connection refused
  17. (PMP)第13章-----项目相关方管理
  18. nginx并发模型与traffic_server并发模型简单比较
  19. for循环实例2
  20. odoo开发笔记--前端搜索视图--按照时间条件筛选

热门文章

  1. memcached命令和配置
  2. 推荐几个web中常用js图表插件
  3. HMC5883L地磁传感器驱动
  4. Max Sum of Rectangle No Larger Than K
  5. Unity中使用扩展方法解决foreach导致的GC
  6. webpack之代码分离
  7. 浅谈Java分页技术
  8. CSS控制之IE常见BUG及解决方案
  9. js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
  10. HDU-1598-find the most comfortable road(暴力+并查集)多看看,