.NET Core在WindowsServer服务器部署及发布
2024-10-03 19:26:51
VS使用WEB DEPLOY发布.NET Core程序
背景是这样的,公司有两台服务器,平时一台备用,另一台做为主生产机器。当有大量补丁或者安装什么东西需要重启的时候,交其中一台直接关掉IIS,然后重启即可,此时另一台负责处理用户请求。
之前一台服务器一个网站的时候,发布都是远程上去,然后复制开发机器pubish目录下的文件过去。这种情况有几个弊端:
- 每次复制过去的文件量巨大。
- web.config难以把控,虽然使用Release和Debug来控制连接字符串,但是,必然不如web.config来得正规。
- 每次要登陆远程机器,有时候剪切板无法共享,需要使用驱动器共享来复制文件,然后还要解压之类的操作。容易出现问题。
使用web deploy发布的话,带来了哪些改变:
- 不再需要远程登陆服务器,减少出错机率。多台服务器发布时效率高。
- 文件量明显减少。
- 控制vs在发布前都提交一个svn版本,使用svn作为备份,下次出问题时,只需要回滚到上一个版本,然后进行发布即可。
- 多个网站操作方便,不需要多个文件夹来回切换。
- 不知道是不是错觉,我感觉发布的速度快很多。
使用的方法
环境需要:
- web platform installer。(WEB PI,其实是用来安装web deploy用的,但是我没用,我直接在官网下载的)
- 安装【管理服务】
- 安装web deploy。
操作:
- 如果有WEB PI,则直接使用它先安装最新版WEB DEPLOY(本文使用WEB DEPLOY3.6)。
- 如果没有WEB PI,或者不想用它安装,就直接搜索微软官网的WEB DEPLOY,然后分别安装。
- 检测系统【服务】中的[Web Management Service]有没有打开,没有打开的话,请打开。
- 在IIS中,选择服务器结点,然后在内容里面打开【管理服务】,右边操作栏里面停止服务,把【启用远程连接】前面复选框选上。然后选在下面的使用windows凭据或IIS用户。点右边的应用,然后启动服务。
- 选中你要发布的网站的站点节点,在内容里面打开【IIS管理器权限】,进入之后,右击鼠标,选【允许用户】,然后可以输入IIS用户,也可以输入windows的用户。这个用户将在vs里面被作为远程发布的凭证。
- 打开vs,右击项目名,点发布,输入刚刚那台服务器的IP地址,输入用户名和密码,在【站点名称】的地点输入服务器中对应网站的网站名称,如果是虚拟目录的二级站点,请将名称用/隔开。
- 然后点击vs发布中的【验证连接】,如果成功,则ok。不成功,自行查找问题。
- 补充.NET Core发布在配置完成之后发布提示ERROR_CERTIFICATE_VALIDATION_FAILED错误,解决方法:
- 打开Properties/PublishProfiles/xxx.pubxml文件
- 在PropertyGroup节点内加入<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
- 保存后重新发布
最新文章
- Android ViewPager打造3D画廊
- Python全栈开发【模块】
- 高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布
- 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)
- 【HDU4612】 双连通分量求桥
- Sublime Text的使用代码块安装的模块
- redis安装过程中遇到的问题
- Java数据库缓存思路
- octopress command memo
- SpringBoot切面控制业务逻辑
- 通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助
- VirtualBox虚拟磁盘文件.vdi从C盘转移到D盘
- Android Studio之SVN打分支、切换分支及合并分支
- C# 读取TXT文本数据 添加到数据库
- Linux配置本地yum源
- ssh: connect to host xx.xx.xxx.xxx port 22: Connection refused
- (PMP)第13章-----项目相关方管理
- nginx并发模型与traffic_server并发模型简单比较
- for循环实例2
- odoo开发笔记--前端搜索视图--按照时间条件筛选
热门文章
- memcached命令和配置
- 推荐几个web中常用js图表插件
- HMC5883L地磁传感器驱动
- Max Sum of Rectangle No Larger Than K
- Unity中使用扩展方法解决foreach导致的GC
- webpack之代码分离
- 浅谈Java分页技术
- CSS控制之IE常见BUG及解决方案
- js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
- HDU-1598-find the most comfortable road(暴力+并查集)多看看,