收到此错误:找不到此本地主机页面
我正在开发 ASP.Net core 应用程序,并且工作正常,但在添加 Identity Scaffolded 后,我收到此错误“找不到此本地主机页面”。我注意到脚手架身份在program.cs中添加了以下配置,如果我将其注释掉,那么它就可以正常工作。
builder.Services.AddDefaultIdentity
下面是完整的program.cs代码
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")
));
builder.Services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this
for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{area=Customer}/{controller=Home}/{action=Index}/{id?}");
app.Run();
我有同样的问题,通过在控制器上添加区域属性来修复:
[Area("Changer")]
public class HomeController : Controller
{
}
从.net core 6.0开始你需要显式添加以下包
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
进入您的项目。
更改您的
Program.cs
以包含 AddRazorRuntimeCompilation()
,如下所示
builder.Services.AddRazorPages().AddRazorRuntimeCompilation();
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
上述更改将允许您即使在部署后也可以更改
.cshtml
内容。话虽如此,这也意味着您必须将普通的 .cshtml
文件部署到服务器中,否则就会出现 404 错误。
复制所有
.cshtml
文件进行发布
对您的
.csproj
文件进行以下更改
<ItemGroup>
<Content Update="Pages\**\*.cshtml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>