【问题标题】:Temporary file upload location in Asp.Net MVC web deployAsp.Net MVC web deploy中的临时文件上传位置
【发布时间】:2014-04-28 20:43:53
【问题描述】:

我使用 Visual Studio 2013 的“发布”和 Web 部署来发布我的 Asp.Net MVC 5 网站。但是,当我更新我的网站时,它在上传期间将不起作用。我正在寻找一种方法来最大限度地减少更新期间网站的停机时间。该网站在 VPS 中运行,我可以完全访问它。我想到的一个解决方案是将 Web Deploy 配置为首先将上传的文件放到一个临时文件夹中,一旦上传完成,它就应该替换新文件。这将使更新在几秒钟内达到顶峰。我可以手动执行此操作,但这不是更新网站的优雅方式。

PS:也许有更好的方法来更新网站,但到目前为止我喜欢网络部署。例如,它比 FTP 快得多。

【问题讨论】:

  • 您是否拥有对 IIS 的完全访问权限,或者这是在有限的托管平台上?
  • @ErikPhilips 我已经安装并管理了 VPS 上的所有程序。我可以完全访问所有内容。

标签: asp.net asp.net-mvc asp.net-mvc-5 web-deployment microsoft-web-deploy


【解决方案1】:

我见过的最有趣的事情之一是拥有两个网站。一次只有一个在运行。上传完成后,您禁用活动的,并启用您上传的。

如果两者都在同一个应用程序池中,这很有效,如果您愿意,甚至可以与会话一起使用 (how to: Configure SQL Server to Store ASP.NET Session State)。

我从来没有这样做过,看起来有点复杂,因为实际上有最少的停机时间,但这是一种方式。

【讨论】:

    【解决方案2】:

    这是我们在具有 4 个网络服务器的高流量网站上使用的解决方案。

    1) 文件被移动到服务器的 /site/version-xxx 2) IIS Web 应用程序重新指向新版本。

    所有这些都是自动化的,并在网络服务器之间同步。最终用户不会注意到任何差异。 (我们不依赖会话来保持用户体验,如果会话对您来说是必须的并且您不想中断它们,那么您需要考虑将它们存储在外部系统上,当网站被重新指向)。

    这种方法还允许我们回滚到任何以前的版本。

    【讨论】:

    • 有趣。你能告诉我你是如何使这个自动化的并稍微详细一点吗?谢谢。
    猜你喜欢
    • 2017-10-01
    • 2020-05-18
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多