无法在Asp.Net 5中获取默认错误页面

时间:2016-02-14 20:00:26

标签: c# asp.net asp.net-mvc

如果发生异常,我的asp.net 5应用程序会向我抛出一个空白的html页面。我的目标是显示默认错误页面。

This questionthis question似乎有关系,但它似乎已经过时了,因为我们不再有web.config而第二个不能解决我的问题。

这是startup.cs中的Configure()方法:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory, IHostingEnvironment env)
{
    loggerFactory.AddDebug(LogLevel.Warning);

    app.UseStaticFiles();
    app.UseMvc(config =>
    {
        //[...]
    });

    if (env.IsDevelopment())
    {
        app.UseBrowserLink();
        loggerFactory.AddDebug(LogLevel.Information);
        app.UseDeveloperExceptionPage();
    }
    else
    {
        loggerFactory.AddDebug(LogLevel.Debug);
        app.UseDeveloperExceptionPage();
    }
    //[...]
}

我已经确认,代码实际上是在遇到if条件并加载了UserDeveloperExceptionPage方法,但无济于事。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案

订单很重要。您需要在MVC中间件之前实例化错误处理中间件。否则,将不会有异常处理。

app.UseMvc(x => {...})之前设置错误处理配置可以解决问题:

if (env.IsDevelopment())
{
    app.UseBrowserLink();
    loggerFactory.AddDebug(LogLevel.Information);
    app.UseDeveloperExceptionPage();
}

app.UseMvc(config =>
{
    //[...]
});

这很简单。