ASP.NET 核心默认模板项目因 HTTP 错误 404 或异常而失败

ASP.NET Core default template project fails with HTTP ERROR 404 or Exception

我在使用 ASP.NET Core MVC 或 Razor applaunch.json 时遇到问题。

我使用默认模板创建具有默认设置的项目:

这是我的 applaunch.json:

{
    "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
            "applicationUrl": "http://localhost:18583",
            "sslPort": 44326
        }
    },
    "profiles": {
        "WebApplication12": {
            "commandName": "Project",
            "dotnetRunMessages": true,
            "launchBrowser": true,
            "applicationUrl": "https://localhost:7081;http://localhost:5081",
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            }
        },
        "IIS Express": {
            "commandName": "IISExpress",
            "launchBrowser": true,
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            }
        }
    }
}

和program.cs:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllersWithViews();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

app.Run();

启动控制台后显示监听端口没有问题:

但我的 ASP.NET 核心 MVC 项目出现异常:

我得到 404 个 Razor Pages:

所有配置均为默认模板配置。

有没有人遇到同样的问题?

我通过使用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 包并添加以下服务解决了这个问题:

对于 ASP.NET Core Razor 模板

builder.Services.AddRazorPages().AddRazorRuntimeCompilation();

对于 MVC 项目模板:

builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();

第二种解决方案是在 Developer Power Shell 或 Command-Line 中使用 dotnet run watch