在IIS中更新Web应用程序 - 最佳实践

时间:2009-03-31 15:27:12

标签: iis deployment web-applications

在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..

}

任何建议都会受到极大的赞赏..

3 个答案:

答案 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数据库表中。所以我永远不必重新启动应用程序,除非我的连接字符串发生变化: - )