跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有没有大佬,知道.net core 或.net5 如何在 iis 上热更新、热发布
未分類
26 11 月 2020

有没有大佬,知道.net core 或.net5 如何在 iis 上热更新、热发布

有没有大佬,知道.net core 或.net5 如何在 iis 上热更新、热发布

資深大佬 : penll 0

之前网上看到,热更新 dll 到 iis 站点,不能覆盖,需要停止该站点,才能发布。 有没有人有啥解决方案。这样,我就能顺利更新到.net5 了。

大佬有話說 (29)

  • 資深大佬 : kiracyan

    好像不太行 .net core 我记得 IIS 只是个代理

  • 資深大佬 : crclz

    你新建一个 demo 试试呗

  • 資深大佬 : Oo0

    用 vs 的发布,它会提示 dll 被占用,但可以成功

  • 資深大佬 : leeg810312

    服务端能热更新?来了解一下哪家做到了

  • 資深大佬 : kiracyan

    不对 我试了下用 VS 发布 不勾删除现有文件就没问题啊

  • 資深大佬 : sun1991

    @kiracyan 还是会重启服务进程的吧, 只是你不知道而已

  • 資深大佬 : kiracyan

    @sun1991 更新还有不重启进程的吗

  • 資深大佬 : sun1991

    @kiracyan 可能是我理解有误. 到底热更新, 热发布是什么意思?

  • 主 資深大佬 : penll

    @leeg810312 可以呀。我这边都是直接更新 dll

  • 主 資深大佬 : penll

    @Oo0 是吗?那我试试哈

  • 主 資深大佬 : penll

    @Oo0 vs 的发布,是直接发到服务器上吗?还是本地调试?

  • 資深大佬 : chouchoui

    https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/app-offline?view=aspnetcore-5.0

    不知道这个在.NET 5 还能用不

    现在手头上有个项目.NET Core 2.2 的还是有效,每次更新的时候会自动带一个 app_offline.htm 提交到站点目录下,更新完以后删除 app_offline.htm

  • 資深大佬 : opengps

    看你把热更新理解到什么程度:
    在开发角度,往往是实现替换 dll 文件的程度才算热更新
    在运维角度,可以通过集群后端切换不同站点的方式来尽可能无感知更换后台站点服务器,来实现“热升级”,如果有耐心,甚至可以做到无感知(被停机那台机器移出负载均衡后,多等一会直到剩余连接断开再更换文件,把已有的连接用完)

  • 資深大佬 : CrazyMonkeyV

    热更新,需要你做动态加载 dll,以及相关逻辑

  • 資深大佬 : sks4728

    动态加载 卸载 程序集 3.1 还是 3.0 开始支持吧

  • 資深大佬 : vone

    我们 .NET Core 的系统是使用 7z 把 Release 目录打个 zip 包,复制 zip 包和部署脚本到服务器。
    部署脚本命令:
    1 、写入 app_offline.htm
    2 、调用 7z 释放 zip 包内容
    3 、删除 app_offline.htm

    步骤 1-3 期间如果访问网站会看到 app_offline.htm 文件的内容,不过这个脚本因为只是释放文件所以执行的非常快,一共就停机几秒。

  • 資深大佬 : IDAEngine

    开负载均衡呗,搭建个新环境,然后把旧的迁移过来,平滑过渡

  • 資深大佬 : h82258652

    我这边方案也是类似 16 的方案。StopSite 然后迁移数据库,接着 WebDeploy,部署完后就 StartSite,整套下来 10 秒不到。要完全无感知,上负载均衡吧。

  • 主 資深大佬 : penll

    @chouchoui 谢谢大佬,我试试看这个 app_offline.htm 哈

  • 主 資深大佬 : penll

    @vone 谢谢指点哈

  • 主 資深大佬 : penll

    @IDAEngine 负载均衡的话,是已经有。但是,这边主要是服务端自己更新 dll 。负载均衡帐号在运维那边。

  • 主 資深大佬 : penll

    @opengps 嗯,目前,就先简单的做。从服务端这个角度吧。这边运维协调还需要更多工作量

  • 資深大佬 : exonuclease

    巨硬自家的表示没玩过这种骚操作 我们是两套完整的环境然后切流量的

  • 主 資深大佬 : penll

    @vone 停止这几秒,请求是完全不可用的是么。

  • 資深大佬 : beginor

    难道不是应该半夜更新么?

  • 主 資深大佬 : penll

    @beginor 目前,.net framework,更新用户不影响。最多只是请求卡了一下。
    而且,我们有更新出问题,立刻回退的工具。
    更新大部分情况:
    是修复 bug
    发布新接口

  • 資深大佬 : vone

    @penll 停机时所有请求都返回的是 app_offline.htm 的文件内容。

  • 資深大佬 : ragnaroks

    iis 还真不清楚,我用 dotnet core 是写了个 loader,以 AppDomain 的形式加载 asp.net core 的 dll,可以做到不重启进程平滑过渡;前面用 nginx 套一层当 httpd 用;

    具体技术细节可以搜 dotnet single process mutli appdomain

  • 資深大佬 : forgottencoast

    @leeg810312 你这个问题是什么意思?那些脚本语言做的服务端,哪个不是改了立即生效的?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具