【问题标题】:How do you implement "Site under maintenance" for Windows Azure Web Site?您如何为 Windows Azure 网站实施“维护中的站点”?
【发布时间】:2011-03-14 05:19:11
【问题描述】:
在我们的一个 ASP.NET 网站解决方案中,我需要推出可能需要合理时间的更新。它会产生多个 Windows Azure Worker 和项目,因此排除了简单的部署交换。
基本上我只是在考虑将所有网络请求重定向到“网站正在维护”页面一段时间,因为该项目位于 Windows Azure .
我知道 IIS 的 app-offline.htm 技巧,但我怀疑 Azure Web 角色会允许部署或运行这个技巧(它会关闭应用程序域)。
【问题讨论】:
标签:
asp.net
asp.net-mvc
routing
azure
【解决方案1】:
经过一些额外的调查,似乎其中一个实现选项是创建一个单独的 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>
通过交换部署此项目将确保逻辑一致性,而消息详细信息(如果预计维护期更长)可以通过 cscfg 设置传递。