.NET 6后端如何配置访问localhost:5001时显示运行状态提示
.NET 6后端根路径显示提示信息的实现方案
针对你的场景(.NET 6后端+Angular前端,后端无自有前端代码),要实现访问localhost:5001时显示提示信息,可通过以下两种可靠方案解决,避免直接添加旧版Run代码导致的应用异常问题:
方案一:精准映射根路径(推荐)
使用MapGet直接映射根路由,仅处理/路径的请求,不会干扰其他API路由的正常运行,将代码添加到UseEndpoints内部即可:
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers().AddJsonOptions(x => x.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles); builder.Services.AddMvc(); builder.Services.AddHttpContextAccessor(); var app = builder.Build(); app.UseDefaultFiles().UseStaticFiles(); app.UseHsts(); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); // 映射根路径到提示信息 endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Worker Process Name : API"); }); }); app.Run();
方案二:使用终端中间件(注意顺序)
若要沿用类似旧版Run的逻辑,需确保将Run终端中间件放在所有路由配置之后(否则会拦截API路由请求),代码如下:
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers().AddJsonOptions(x => x.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles); builder.Services.AddMvc(); builder.Services.AddHttpContextAccessor(); var app = builder.Build(); app.UseDefaultFiles().UseStaticFiles(); app.UseHsts(); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); // 放在最后,处理所有未匹配的请求(包括根路径) app.Run(async context => { await context.Response.WriteAsync("Worker Process Name : API"); });
额外需求:同时输出到浏览器控制台
如果需要在显示页面提示的同时,将信息输出到浏览器控制台,可以返回包含脚本的HTML内容:
endpoints.MapGet("/", async context => { var htmlContent = @" <!DOCTYPE html> <html> <body> <p>Worker Process Name : API</p> <script>console.log('Worker Process Name : API');</script> </body> </html>"; await context.Response.WriteAsync(htmlContent); });
内容的提问来源于stack exchange,提问作者FranciscoFJM
相关产品推荐
相关产品推荐

