ASP. NET Пользовательская страница ошибки Core 3.0 недоступна - PullRequest
0 голосов
/ 18 июня 2020

Я создал простую error.cshtml страницу бритвы в папке Pages. Папка Pages находится на том же уровне, что и папка Views, поэтому она находится на правильном уровне.

Error.cshtml страница похожа на разметку и код, показанные здесь:

@page
<h2>Sorry... Try again later...</h2>

В Startup.cs у меня есть следующий код

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        //app.UseDefaultFiles();
        app.UseStaticFiles();
        app.UseNodeModules();

        app.UseRouting();

        app.UseEndpoints(cfg => {
            cfg.MapControllerRoute("Fallback", "{controller}/{action}/{id?}",
                new { controller = "App", action = "Index" });
        });            
}

Я сделал убедитесь, что env не является средой Development, поэтому он вызывает app.UseExceptionHandler("/Error"). Однако, когда возникает исключение, я получаю сообщение HTTP ERROR 404 «страница localhost не может быть найдена» вместо получения своей настраиваемой страницы ошибки.

Я не уверен, почему не загружается моя страница с ошибкой. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 июня 2020

Согласно вашему описанию, я обнаружил, что вы не добавляете настройку сопоставления конечных точек бритвенной страницы. Это причина, по которой вы столкнулись с ошибкой 404.

Я предлагаю вам попробовать добавить endpoints.MapRazorPages(); в метод app.UseEndpoints , тогда он будет работать хорошо.

Подробности, вы может относиться к приведенным ниже кодам:

        app.UseEndpoints(endpoints =>
        {

            endpoints.MapRazorPages();
            endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Default}/{action=Index}/{id?}");

        });

Если вы не вводите страницу бритвы, вы также должны добавить следующие коды в метод ConfigureServices:

        services.AddRazorPages();

Результат:

введите описание изображения здесь

...