【问题标题】:VS2010 ASP.NET DeploymentVS2010 ASP.NET 部署
【发布时间】:2010-08-07 06:44:59
【问题描述】:

如何部署到共享托管环境...代码和数据库(完整的 SQL)。

您最喜欢将 50MB 单个项目 ASP.NET Web 应用程序项目和数据库传输到可访问 FTP 和 SQL Management Studio 端口的实时服务器的方式是什么?

经过一天的探索矿井是: - 使用 Web.Debug.config 轻松允许不同的连接字符串、smtp 等

【问题讨论】:

  • 感谢 Rob 的编辑 - 被 007 引用冲昏了头脑 :-)

标签: sql visual-studio visual-studio-2010 smo


【解决方案1】:

FileZilla 部署是可以的,只要您不介意这可能导致的短暂停机。在您进行部署时,该站点可能处于不一致的状态(例如,您已部署了一个 .aspx 文件,该文件引用了尚不存在的 DLL 中的代码隐藏)。因此,在此期间访问该站点的访问者可能会遇到错误 - 如果您没有发现这些错误,他们将看到“黄屏死机”。部署所有文件后,这将清除。

这是一个过去对我有用的过程,用于将停机时间最短地部署到单个服务器:

  1. 在生产服务器上,将所有代码从实时位置(例如 c:\Sites\MySite)复制到备份位置(例如 c:\Sites\MySite_bak)
  2. 将站点的虚拟根目录从 c:\Sites\MySite 更改为 c:\Sites\MySite_bak。这会给网站访问者带来一些延迟,因为 ASP.NET 需要重新 JIT ASPX 页面;但访问者不会看到错误。
  3. 使用 FileZilla 部署到 c:\Sites\MySite,并带有“如果源较新则覆盖”
  4. 将站点的虚拟根目录从 c:\Sites\MySite_bak 改回 c:\Sites\MySite。这将自动将站点切换到新版本。会有另一个 JIT 延迟。
  5. 将备份版本保留在实时服务器上,以防您需要恢复更改。

如果您还要进行数据库架构更改,您可能希望在 (4) 的同时进行。或者,如果更改与旧版本的代码兼容,您可以早点进行。

我一直假设您只有一台服务器。如果您有一个服务器场,您可以通过一次从负载平衡池中取出一台服务器来进行滚动部署。

【讨论】:

  • 我还假设您可以访问实时服务器上的管理 IIS - 如果您不这样做,这种方法将不起作用。
  • 感谢 Richard - 目前我并不担心停机时间,因为该项目尚未上线。我的主要头痛是冗长的过程......只是在寻找更好的方法时获得乐趣。再次感谢您对现场内容的看法。
  • 在 IIS 中更改目录的另一个选项,您可以在目录中放置一个 app_offline.htm 文件。 IIS 将为网站的任何点击提供此文件,摆脱潜在的黄屏。该应用程序仍处于离线状态,但您可以显示一条消息“正在更新,请稍后再试”。或任何你想要的 html。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2011-03-11
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多