asp.net-mvc - 如何通过使用 web.config 中的开始时间和结束时间键在 global.asps 文件中编写代码来使网站处于维护状态
问题描述
我正在编写一个用于使网站处于维护状态的代码。任何人都可以帮助我。要求如下。我有一个项目代码,我需要使该网站从特定时间到特定时间进行维护,例如从 18 开始到 8 岁之前,它应该处于维护状态,应该在global.asax文件中完成,开始和结束时间应该像键值一样存在webconfig文件,如下所示有人可以帮我吗?global.aspx 的代码应该类似于 dis.......
// Clear the response stream
var httpContext = HttpContext.Current;
httpContext.Response.Clear();
httpContext.ClearError();
httpContext.Response.TrySkipIisCustomErrors = true;
var routeData = new RouteData();
routeData.Values.Add("controller", "Error");
routeData.Values.Add("action", action);
// Call error Controller and pass the routeData.
using (var controller = new ErrorController())
{
((IController)controller).Execute(new RequestContext(new HttpContextWrapper(httpContext), routeData));
}
关键应该如下...
<add key="StartTime" value="8"/>
<add key="EndTime" value="18"/>
我采取的逻辑如下
public class UnderMaintenanceAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var requestTimestamp = filterContext.HttpContext.Timestamp;
if (IsUnderMaintenance(requestTimestamp))
{
filterContext.Result = new RedirectToRouteResult(
// create your controller/action/view to display your message
new RouteValueDictionary
{
{ "controller", "Undermaintenance" },
{ "action", "Index" }
});
}
}
private bool IsUnderMaintenance(DateTime requestTimestamp)
{
bool isUnderMaintenance = requestTimestamp.Hour >= 18 || requestTimestamp.Hour < 13;
return isUnderMaintenance;
}
}
但我已经在路由配置中写了,我的经理希望我用开始键和结束键在 global.aspx 中编写它