如何解决“请求已到达中间件管道的末尾,但未被应用程序代码处理。”?

问题描述 投票:0回答:1

我正在尝试将我们的公共 API 转换为仅使用单个 Program.cs 格式作为 .NET8 更新的一部分,但尽管应用程序已构建并运行,但当我尝试访问某个路线时,我得到了 404,并且在调试输出中我获取“请求到达中间件管道的末尾,而没有被应用程序代码处理。” 我已经删除了 dotnet 模板附带的默认“app.Xyz”以外的所有内容,但问题仍然存在。我的 Program.cs 的“应用程序”部分现在看起来像这样:

var app = builder.Build();

var listener = app.Services.GetRequiredService<DiagnosticListener>();
var observer = ActivatorUtilities.CreateInstance<AnalysisDiagnosticAdapter>(app.Services);
using var disposable = listener.SubscribeWithAdapter(observer);


app.UseHttpsRedirection();
app.UseRouting();
app.UseUserAuthentication();
app.UseAuthorization();

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

app.Run();

我在 DiagnosticAdapter 中添加了它,看看这是否有帮助,但它并没有真正告诉我默认调试输出所做的任何事情。

我可以使用

app.MapGet();
在此文件中添加测试路由,它可以正常工作并返回,但任何外部控制器都会返回 404 错误。

c# asp.net-core
1个回答
0
投票

您应该注册控制器。尝试用以下内容替换应用程序构建行:

var app = builder.Services.AddControllers().Build();
© www.soinside.com 2019 - 2024. All rights reserved.