我有一个实时ASP .NET Core站点运行我使用dotnet发布构建..
现在我想以尽可能少的停机时间更新网站 – 希望没有!
我注意到在开发过程中如果未附加调试器,我可以对Views .cshtml文件进行更改,并且反映它们没有havint重新启动服务器,所以我可以将新视图放入我的实时站点?其他一切如Controller * .dlls怎么样?
我看了,但找不到任何官方文档:(
最佳答案 不,你绝对不能做到’透明’
IIS正在运行您的网站进程并且dll / exe文件已被锁定.要解锁它们 – 您需要停止该网站.
我使用以下行动:
>将新站点的zip压缩到生产服务器
>在生产服务器上的“backup dir”上创建appsettings.json文件副本
>在IIS管理器中停止该站点.停工开始了
>删除网站目录中的所有文件 – 它们不再被锁定(IIS停止的站点)
>从zip包中提取新文件
>从“backup dir”复制“production”appsettings.json(在zip中覆盖一个)
>在IIS管理器中启动站点,在浏览器中本地打开它.停工结束.
在我的网站上,所有停机时间都不到一分钟(复制文件,重新启动红隼).如果这对您来说是不可接受的 – 您需要多个具有某种“渐进式更新”的实例.