Har*_*ode 6 asp.net deployment
我试图了解如何在网站上有用户时处理实时,功能正常的ASP.NET(2.0或更高版本)应用程序的更新.
例如,假设SO是ASP.NET Web应用程序项目.项目代码编译为BIN文件夹中的单个.DLL.现在,SO上经常有用户,那么如果你在使用网站时使用Visual Studio .NET"发布"功能(或者只是手动再次FTP),用户的操作/会话会发生什么?
相反,创建一个ASP.NET网站会减轻上述场景可能存在或不存在的任何问题吗?我开始开发一个用户驱动的Web应用程序的网站,我想确保我对此缺乏经验不会惹恼我[想要]全天候的[潜在]许多用户.
编辑:对不起,我应该把它放在更准确的上下文中.假设该网站由网络托管服务托管,每月收费.我不会管理服务器本身,只是Web主机允许作为其服务的用户.
我在IIS中创建了两个Web站点.一个是生产Web站点,另一个是带有HttpHandler的静态Web站点,它将所有请求发送到单个静态"我们正在更新"HTML页面,该页面使用HTTP 503服务不可用.通常,关闭更新网站.在更新的时候,我们停止生产网站,启动更新网站,现在我们可以随心所欲地制作生产网站,而不必担心DLL被锁定或工作流程需要被关闭.
我开始这样做是因为
这个没有解决的问题包括
我见过的其他方法包括
如果您找到更好的方法,请告诉我!
更改为 asp.net 网站模型不会产生任何影响,因为回收也会发生,一些肯定会触发它的更改:web.config、global.asax、app_code。
回收后,用户仍将登录,因为 ASP.NET 将仅验证语法。前提是您使用固定的机器密钥,否则它会在每次回收时发生变化。无论如何,这是你想要做的事情,因为如果密钥在请求之间发生变化,即视图状态验证、嵌入资源(url 解密失败),其他东西可能会被破坏。
如果您可以将会话置于进程之外,就像在 sql server 中一样,您将避免丢失会话。如果你不能,你的代码将不得不考虑这一点。在很多情况下,您可以避免使用会话,而在其他情况下,您可以将其包装起来,并在会话被清理后重新检索信息。这应该会给您留下一些您知道可能会给用户带来麻烦的具体情况,因此对于这些情况,您可以采取其他人已经提出的一些建议。
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |