【问题标题】:Updating a Web Application in IIS - Best practices在 IIS 中更新 Web 应用程序 - 最佳实践
【发布时间】:2009-03-31 15:27:11
【问题描述】:

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

}

任何建议将不胜感激..

【问题讨论】:

    标签: iis deployment web-applications


    【解决方案1】:

    我在本地测试所有内容,然后在生产服务器上使用内置的 app_offline.html 文件。 当此文件存在时,它将提供给客户,同时我正在上传新内容。完成后,将 app_offline.html 重命名为不同的名称并启动新应用。

    【讨论】:

    • +10 我希望我能对此给予更多支持。 App_Offline 快速简单,我喜欢它!!!!您甚至可以在不使用时将文件作为 app_offline_disabled.html 保留在 Web 服务器上。它为我省去了很多以前必须尝试的麻烦。只需遵循这些指导方针,您就可以搞定。 weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx
    【解决方案2】:

    您应该将更新标志保存在其他 xml 文件或数据库中,而不是通过 web.config 进行,因为每次更新 web.config 文件时,应用程序都会重新启动,从而使当前应用程序变量、缓存、等等等等

    除此之外,您的其他逻辑是正确的。但尽量避免接触 web.config - 我个人只将连接字符串保存在 web.config 中,因为它几乎不会改变

    但其他经常更改的键值对,我将它们保存在 sql 数据库表中。这样我就永远不必重新启动应用程序,除非我的连接字符串发生变化:-)

    【讨论】:

    • 应用程序设置就是为了这种事情。
    • 取决于。我做了很多繁忙的电子商务网站,在任何时候都有数百名用户忙着购物。我无法重置我的整个应用程序并松开它们只是为了更改 1 个应用程序设置的值:-)
    • 相反,我所做的是在管理部分向站点管理员提供一个表单以更新 appSettings - 然后只需重新填充/刷新保存这些值的类 - 保存在应用程序变量中
    • ASP.NET 已经有了,使用 ASP.NET 配置设置向导。您可以在 prod 机器上运行它而无需编写任何代码。应用程序设置的重点是不必重新启动:)
    • 您可以在 machineConfig [restartOnExternalChanges="false" ] 中编辑导致应用重启的 appSettings [restartOnExternalChanges="false"]
    【解决方案3】:

    看来你已经明白了。

    if (WebConfigurationManager.AppSettings["updating"]=="true") 
       if (User.IsInRole("admin"))
           Response.Redirect("~/Main.aspx");
       else
           Response.Redirect("~/Updating.aspx");
    else
       Response.Redirect("~/Main.aspx");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 2012-06-06
      • 2010-09-15
      • 1970-01-01
      • 2011-02-16
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多