我有一个运行的ASP .NET Core网站,我使用dotnet publish
..
现在我想以尽可能少的停机时间更新网站 - 希望没有!
我在开发过程中注意到如果未附加调试器我可以对Views .cshtml
文件进行更改,并且它们会被反映而无需重新启动服务器,因此我可以将新视图放入我的实时站点?其他一切如控制器*.dll
?
我看了,但找不到任何官方文件:(
答案 0 :(得分:1)
不,你不能绝对'透明'
IIS正在运行您的网站进程并且dll / exe文件已被锁定。要解锁它们 - 您需要停止该网站。
我使用以下行动:
appsettings.json
文件副本appsettings.json
(在zip中覆盖一个)在我的网站上,所有停机时间都不到一分钟(复制文件,重新启动红隼)。如果这对您来说是不可接受的 - 您需要多个具有某种“渐进式更新”的实例。
答案 1 :(得分:0)
即使在IIS或Kestrel
上编译的文件也无法执行此操作强制更新已编译的文件可能会损坏整个应用程序并产生许多意外错误。始终关闭您的应用程序,然后更新。更新只对未编译为视图的文件安全。如果你需要保存你的SLA make web-farm策略(那么你可以升级每个实例而不会像@Dmitry那样破坏app的运行时间)
答案 2 :(得分:0)
myapp.dll.old
(应用程序将继续工作)这些答案表明了类似的技术https://stackoverflow.com/a/66580629/56621 和 https://stackoverflow.com/a/41149978/56621