Я хотел бы использовать конфигурацию в файле .config следующим образом:
<appSettings>
<add key="SiteIsActive" value="false"/>
<add key="SiteNonActive_RedirectTo" value="UnderMaintainance.aspx"/>
</appSettings>
Так что, когда для этого параметра установлено значение false, система автоматически перенаправляет КАЖДЫЙ ЗАПРОС на страницу обслуживания.
Я пытался сделать это следующим образом: используя Global_asax's 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 покажет мне страницу БЕЗ какого-либо изображения или стиля ... странно, я смотрю на исходный код страницы, загруженный браузером, и все есть!
Это правильный путь для достижения моей цели?
Я делаю что-то не так?
Thankyou
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) В процессе строительства
<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 не предлагает мне этого.