获取维护消息并访问仅用于在 ASP.net 中进行测试

Posted

技术标签:

【中文标题】获取维护消息并访问仅用于在 ASP.net 中进行测试【英文标题】:Getting Maintenance message up and access just for testing in ASP.net 【发布时间】:2013-10-24 04:54:40 【问题描述】:

大家好,小伙伴们必须获取维护信息(我已经收到了)以进行一些重大的重新开发,同时只允许我访问站点进行测试。我已经成功地将该站点进行了维护,但是没有人可以访问它,即使是我。该站点托管在 discountASP.com 上,并且正在使用 Umbraco 平台 (v 4.7.1)。

理想情况下,我希望将除我之外的所有用户从 default.aspx(或站点的​​任何其他页面)重定向到 maintenance.html。 Default.aspx 是我网站的默认页面。

我当前的 default.aspx 页面如下所示:

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="True" Inherits="umbraco.UmbracoDefault" trace="true" validateRequest="false" %>

我对任何 ASP.net 都没有信心。 (刚接手一个项目,不知道它会和 Umbraco 一起在 ASP.net 中)。

【问题讨论】:

旁注:请避免在帖子中使用“感谢信”(参见meta)和签名(改为编辑您的用户名)。 【参考方案1】:

我首先要说的是,最好在开发环境中而不是直接在生产环境中进行维护工作。 但是,如果这不是一个选项,有几种方法可以为您的维护页面添加“绕过”逻辑。 有几种不同的方法可以实现这一点。想到的一个想法是向 default.aspx 页面添加一个可选的查询字符串参数,该参数将告诉您的代码跳过重定向。

Ex: Default.aspx?skipMaintenanceMessage=true

如果设置了这个参数,你可以跳过重定向。

在 Default.aspx.cs 中你可以添加类似的东西

if(Request.QueryString["skipMaintenanceMessage"] != "true")

   Response.Redirect("maintenance.html");

另一种方法是在用户名级别处理它并添加逻辑以不重定向您的登录用户(如果您有登录用户)

【讨论】:

以上是关于获取维护消息并访问仅用于在 ASP.net 中进行测试的主要内容,如果未能解决你的问题,请参考以下文章

DLL 无法访问 IIS 内部用于 ASP.NET 应用程序的数据库

在 ASP.NET MVC 中过期后刷新访问令牌

Javascript 不适用于 ASP.NET 上的 Timer Tick 方法

在asp.net核心中实现“维护模式”

使用 ADFS 对 ASP.NET Web Api 进行身份验证

如何继承 ASP.NET MVC 控制器并仅更改视图?