gpt4 book ai didi

asp.net - 管理 ASP.NET 应用程序中的维护页面重定向

转载 作者:行者123 更新时间:2023-12-02 00:14:33 26 4
gpt4 key购买 nike

我想在 .config 文件中使用如下配置:

<appSettings>
<add key="SiteIsActive" value="false"/>
<add key="SiteNonActive_RedirectTo" value="UnderMaintainance.aspx"/>
</appSettings>

这样,当该设置设置为 false 值时,系统会自动将每个请求重定向到维护页面。

我尝试以这种方式执行此操作:使用 Global.asax 的 Application_BeginRequest:

protected void Application_BeginRequest(object sender, EventArgs e) {
if ((bool)System.Configuration.ConfigurationManager.AppSettings["SiteIsActive"])
if (this.Request.Path.IndexOf(
System.Configuration.ConfigurationManager.AppSettings["SiteNonActive_RedirectTo"]) == -1)
this.Response.Redirect(
System.Configuration.ConfigurationManager.AppSettings["SiteNonActive_RedirectTo"]);
}

基本上它可以工作,但是当以这种方式重定向时,firefox将向我显示没有应用任何图像或样式的页面...这很奇怪,我查看浏览器下载的页面源,一切都在那里!

这是实现我的目标的正确方法吗?我做错了什么吗?

谢谢

PS:Internet Explorer 的行为与 Firefox 不同,它正确地向我显示重定向的页面。

PS2:你们正确地向我发布了一个名为 App_Offline 的功能可用。好吧,我不想使用它,原因有一个:我想使用我的维护页面不仅显示一种状态,而且显示更多状态,例如:

1)维护

<appSettings>
<add key="SiteIsActive" value="false"/>
<add key="SiteNonActive_RedirectTo" value="UnderMaintainance.aspx?S=Maintainance"/>
</appSettings>

2) build 中

<appSettings>
<add key="SiteIsActive" value="false"/>
<add key="SiteNonActive_RedirectTo" value="UnderMaintainance.aspx?S=UnderConstr"/>
</appSettings>

3) 暂时不活动

<appSettings>
<add key="SiteIsActive" value="false"/>
<add key="SiteNonActive_RedirectTo" value="UnderMaintainance.aspx?S=TempInact"/>
</appSettings>

App_Offline 不向我提供此功能。

最佳答案

有一种更简单的方法可以做到这一点,它使用一个名为 App_Offline.htm 的特殊页面。

了解更多信息:

App_Offline.htm - by Scott Guthrie

您可能还想阅读 Scott 关于 IE6 问题的后续文章:

App_Offline.htm and working around the "IE Friendly Errors" feature

不使用时,只需将其重命名为 App_offline.disabled 之类的名称,然后当您需要进行维护时,再次将其重命名为 App_Offline.htm

这种方法的进一步理由是,如果您的“维护”包括部署网站或编辑 web.config,您的 UnderMaintainance.aspx 页面可能无法执行因为您的网站在上传时将处于不断变化的状态。或者,您可能犯了一个错误并覆盖了 web.config 中的这些“维护”值。

App_Offline.htm 很棒,因为它意味着您可能会真正搞乱您的部署,而没有人会知道。

关于asp.net - 管理 ASP.NET 应用程序中的维护页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com