如何为Windows Azure网站实施"维护中的站点"?

Rin*_*lin 7 asp.net asp.net-mvc routing azure

在我们的一个ASP.NET网站解决方案中,我需要推出可能需要合理时间的更新.它产生了多个Windows Azure Workers和项目,因此排除了简单的部署交换.

基本上我只是考虑将所有Web请求重定向到"站点正在维护"页面一段时间,因为该项目在Windows Azure下.

我知道有IIS应用程序,offline.htm招的,但我怀疑Azure的Web角色将允许这样一来部署或运行​​(它旋转下来的应用程序域).

Rin*_*lin 4

经过一些额外的调查后,似乎实现选项之一是创建一个单独的 Web 项目(部署包和 Web 角色),将所有请求重定向到单个维护页面。Url Rewrite模块(默认安装在 Azure 上)可以这样配置:

<rules>
  <rule name="Redirect exclusions" stopProcessing="true">
    <match url="\.(css|gif|png|htm|jpg)$" />
  </rule>
  <rule name="Redirect to index" stopProcessing="true">
    <match url="^(.*)$" />
    <action type="Redirect" url="/index.htm" />
  </rule>
</rules>
Run Code Online (Sandbox Code Playgroud)

通过交换部署该项目将确保逻辑一致性,而消息详细信息(如果预计维护周期较长)可以通过 cscfg 设置传递。