在IIS中更新Web应用程序的最佳做法是什么?
您访问我们的应用程序时看到的第一页是登录页面。
我想要实现的是将访问者重定向到一个页面,说明正在更新应用程序。对于具有管理员角色的用户能够成功登录(以检查一切是否正常工作)
在web.config中,我们跟踪应用程序的更新时间(更新= [true | false],然后是authentication_event:
if (updating)
{
if (User.IsInRole("admin"))
{
redirect to main web app...
}
else
{
redirect to web being updated page....
}
}
else
{
redirect to main web app..
}
任何建议都会受到极大的赞赏..
答案 0 :(得分:9)
我在本地测试所有内容,然后在生产服务器上使用内置的app_offline.html文件。 当此文件存在时,它将提供给客户端,同时我将上传新内容。完成后,将app_offline.html重命名为不同的内容并启动新应用。
答案 1 :(得分:1)
看起来你已经弄明白了。
if (WebConfigurationManager.AppSettings["updating"]=="true")
if (User.IsInRole("admin"))
Response.Redirect("~/Main.aspx");
else
Response.Redirect("~/Updating.aspx");
else
Response.Redirect("~/Main.aspx");
答案 2 :(得分:1)
而不是通过web.config执行此操作,您应该将更新标志保存在其他一些xml文件或数据库中,因为每次更新web.config文件时,应用程序都会重新启动,从而使当前应用程序变量,缓存无效,等等
除此之外,你还有其他正确的逻辑。但是尽量避免触摸web.config - 我个人只保存web.config中的连接字符串,因为它几乎不会改变但是经常更改的其他键值对,我将它们保存在sql数据库表中。所以我永远不必重新启动应用程序,除非我的连接字符串发生变化: - )