我们明天将为使用 IIS 的客户端推出一个站点。
我将把网站向公众开放(对不起,我们正在更新消息)并允许客户在我们执行升级后的周末进行测试。
如果成功了,我就向所有人开放——如果没有,我就回滚。
向公众张贴“我们不开放”标志但其余部分对测试人员开放的最简单方法是什么?
通过 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 博客上的详细信息。
要求测试人员登录。您甚至可以隐藏登录页面,以便您需要直接链接才能看到它。然后,对于所有未登录的人,重定向到显示您的消息的页面。
在 IIS 中启动另一个“站点”,它将捕获主站点的主机头。使用具有“我们已停止维护”的自定义 307/503/404 页面,或使用某种 URL 重写将人们重定向到您的单个静态文件。
将您真实站点上的 host-header-binding 切换到其他东西,例如您的开发人员使用的 dev.domain.com 或 testing.domain.com。
或者,通过 IP 阻止,并让您的自定义“未授权”页面告诉访问者您需要维护。
你有几个选择。
我以前用过的一些方法:
我们倾向于在站点的所有页面(通常是数据库连接,因为它包含在所有文件中)都有一个登录页面和一个包含文件,以检查有效的登录会话。如果您尚未登录,您会收到一条消息,说明该站点已关闭以进行维护