【发布时间】:2008-11-06 17:03:29
【问题描述】:
明天我们将为使用 IIS 的客户推出一个网站。
我将把网站公开发布(抱歉,我们正在更新消息)并允许客户在我们执行升级后的周末进行测试。
如果成功,我向所有人开放 - 如果不成功,我就回滚。
向公众张贴“我们不开放”标志的最简单方法是什么,而其余的则对测试人员开放?
【问题讨论】:
标签: c# asp.net iis web rollout
明天我们将为使用 IIS 的客户推出一个网站。
我将把网站公开发布(抱歉,我们正在更新消息)并允许客户在我们执行升级后的周末进行测试。
如果成功,我向所有人开放 - 如果不成功,我就回滚。
向公众张贴“我们不开放”标志的最简单方法是什么,而其余的则对测试人员开放?
【问题讨论】:
标签: c# asp.net iis web rollout
通过 IIS 重定向。在 IIS 中创建一个新网站,并将“抱歉更新”消息放入 Default.aspx。然后在真实站点(将从 80 转到其他站点 (6666))和“维护”站点(设置为 80)之间切换端口。
然后告诉您的测试人员访问 yoursite.com:6666。
然后将“维护”站点关闭后将真实站点切换回80。
【讨论】:
我认为值得一提的是 ASP.NET 2.0+ 的“应用程序离线”功能。 (是的,我知道提问者希望将应用程序留待测试,但我正在为以后可能有不同需求的读者写这篇文章。
如果您真的想让每个人 的应用程序脱机(例如进行服务器维护),有一个非常简单的选项。在 ASP.NET 2.0 及更高版本中,您所要做的就是放置一个具有此名称的文件:
app_offline.htm
...在 ASP.NET 应用程序的根目录中。在其中放置适当的“抱歉稍后再回来”消息。而已。其余的由 ASP.NET 运行时完成。
Scott Guthrie's blog 的详细信息。
【讨论】:
要求测试人员登录。您甚至可以隐藏登录页面,以便您需要直接链接才能看到它。然后,对于所有未登录的人,重定向到显示您的消息的页面。
【讨论】:
在 IIS 中启动另一个“站点”,它将捕获您的主站点的主机头。使用带有“我们已停止维护”的自定义 307/503/404 页面,或使用某种 URL 重写将人们重定向到您的单个静态文件。
将您真实网站上的 host-header-binding 切换为其他内容,例如您的开发人员使用的 dev.domain.com 或 testing.domain.com。
或者,通过 IP 阻止,并让您的自定义“未授权”页面告诉访问者您需要维护。
您有多种选择。
【讨论】:
我之前用过的一些方法:
【讨论】:
我们倾向于在站点的所有页面(通常是数据库连接,因为它包含在所有文件中)都有一个登录页面和一个包含文件,用于检查有效的登录会话。如果您尚未登录,您会收到一条消息,指出该站点已停止维护
【讨论】: