无法在Application_Start中写入响应

时间:2017-08-09 02:48:35

标签: c# asp.net-mvc

在我的Application_Start方法中,我正在进行一些设置并记录到我的数据库。我有一个问题,我的连接字符串是错误的,这不是什么大问题,但我想在Application_Start()期间验证数据库是否可用,并在用户关闭时向用户报告。

由于httpResponse尚未提供,我无法向浏览器写一些内容。

我还有其他哪些实用选择?

1 个答案:

答案 0 :(得分:0)

这是我的建议的快速实施。

修改global.asax以获得公共变量

public class MvcApplication : System.Web.HttpApplication
{
    public static bool IsConfigured { get; set; }

如果已配置所有内容,则在离开Application_Start时设置IsConfigured = true

然后添加像这样的ActionFilter

public class ConfiguredAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (MvcApplication.IsConfigured) return;

        filterContext.Result = new ViewResult
        {
            ViewName = "Offline",
            TempData = filterContext.Controller.TempData
        };
    }
}

在共享视图文件夹

中创建离线视图

注册新过滤器

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new ConfiguredAttribute());
    }
}