我对网络发布并不陌生,但我对针对经常使用的网站进行发布并不陌生。以前,此服务器上的应用程序不经常被点击,但我们正在推出一个高需求的应用程序。那么,发布到实时 Web 服务器的最佳实践是什么?
- 最好等到半夜没有人上网(是的,我几乎可以依赖它——它是一个内部网,因此会有时间不使用)
- 在对主干进行新更新时发布(当然取决于构建成功)
- 如果 2 为真,那么如果有人正在使用该特定页面或 DLL 并且它被覆盖,那似乎很糟糕。
...我敢肯定这种事情有很多好地方,但我没有使用正确的谷歌搜索词。
@Nick DeVore 写道:
如果 2 为真,那么如果有人正在使用该特定页面或 DLL 并且它被覆盖,那似乎很糟糕。
如果您使用的是 ASP.NET 堆栈(Webforms、MVC 或滚动您自己的堆栈),这并不是真正的问题,因为您的所有 aspx 文件都会被编译,因此不会被网络服务器触及。/bin/ 文件夹完全隐藏在其他地方,因此网络服务器也不使用其中的库。
IIS 将等到所有请求都完成(尽管有一些超时),然后将继续编译(如果需要)并重新启动 AppDomain。如果只更改了几个文件,甚至不会重新启动 AppDomain。IIS 会将新程序集(或编译的 aspx/asmx/ascx 文件)加载到现有的 AppDomain 中。
@Nick DeVore 写道:
帮助我更多地理解这一点。将我指向微软解释这一点的地方。谢谢!
尝试用谷歌搜索“IIS AppDomain”关键字。我找到了ASP.NET 程序员应该了解的关于应用程序域的知识。
我们在凌晨进行大部分更新。
方便的提示,如果这是一个 ASP.NET 站点,无论您在一天中的什么时间推出,放入一个 App_Offline.htm 文件,其中包含一条消息,向用户解释该站点因维护而关闭。
斯科特·格思里在这里有更多信息:
http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx