当前位置:  开发笔记 > 后端 > 正文

站点运行时重新发布ASP.NET Web应用程序

如何解决《站点运行时重新发布ASP.NETWeb应用程序》经验,为你挑选了1个好方法。

我试图了解如何在网站上有用户时处理实时,功能正常的ASP.NET(2.0或更高版本)应用程序的更新.

例如,假设SO是ASP.NET Web应用程序项目.项目代码编译为BIN文件夹中的单个.DLL.现在,SO上经常有用户,那么如果你在使用网站时使用Visual Studio .NET"发布"功能(或者只是手动再次FTP),用户的操作/会话会发生什么?

相反,创建一个ASP.NET网站会减轻上述场景可能存在或不存在的任何问题吗?我开始开发一个用户驱动的Web应用程序的网站,我想确保我对此缺乏经验不会惹恼我[想要]全天候的[潜在]许多用户.

编辑:对不起,我应该把它放在更准确的上下文中.假设该网站由网络托管服务托管,每月收费.我不会管理服务器本身,只是Web主机允许作为其服务的用户.



1> Nicholas Pia..:

我在IIS中创建了两个Web站点.一个是生产Web站点,另一个是带有HttpHandler的静态Web站点,它将所有请求发送到单个静态"我们正在更新"HTML页面,该页面使用HTTP 503服务不可用.通常,关闭更新网站.在更新的时候,我们停止生产网站,启动更新网站,现在我们可以随心所欲地制作生产网站,而不必担心DLL被锁定或工作流程需要被关闭.

我开始这样做是因为

App_Offline.htm在我们使用的Web Gardens中确实不能很好地工作.

App_Offline.htm将其页面作为404提供,如果您在一段有意义的时间内停机,则该页面很糟糕.

我们可以使用修改后的设置启动已升级的生产网站(仅在本地主机上监听),我们可以在最后一刻接受/验证一切正常,然后我们关闭交换机,关闭更新网站并重新启用生产网站.

这个没有解决的问题包括

任何需要重新启动服务器的维护 - 您仍然有没有服务页面的停机时间.

任何与.NET运行时相关的维护,例如升级到最新的Service Pack.

我见过的其他方法包括

有两台服务器.将所有负载均衡请求发送到一台服务器,升级另一台服务器; 然后冲洗并重复.我们大多数人都没有这种奢侈品.

创建多个bin目录,如bin-1.0.0.0和bin-1.1.0.0,并告诉ASP.NET在web.config文件中使用哪个bin目录.(这样做的一个优点是恢复到以前的二进制文件只是编辑一个配置文件.缺点是很难恢复不会在二进制文件中结束的资源,比如模板和图像等.)我不这样做.记住这实际上是如何工作的 - 我认为应用程序在其Global.asax中基于其自己的web.config部分进行了一些后期程序集加载(因为你触摸了web.config,应用程序已重新启动,所以没关系).

如果您找到更好的方法,请告诉我!

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有