【发布时间】:2018-03-10 22:44:54
【问题描述】:
在 Startup.cs 我有一个非常简单的地图
app.Map("/Home",x=>x.UseMiddlewareLogic1() );
我的完整配置代码如下所示
public void Configure(IApplicationBuilder app)
{
app.Map("/Home",x=>x.UseMiddlewareLogic1() );
//app.UseMiddlewareLogic1();
//app.UseMiddlewareLogic2();
app.Run(async context =>
Logic3(context));
}
逻辑3只是如下所示的响应写入
public async Task Logic3(HttpContext obj)
{
await obj.Response.WriteAsync("Logic 3\n");
}
上面的代码显示 404 not found。 中间件逻辑类是 Visual Studio 模板中的标准类。我正在使用 VS 2017。
public class MiddlewareLogic1
{
private readonly RequestDelegate _next;
public MiddlewareLogic1(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
await httpContext.Response.WriteAsync("This is logic123 \n");
await _next(httpContext);
}
}
// Extension method used to add the middleware to the HTTP request pipeline.
public static class MiddlewareLogic1Extensions
{
public static IApplicationBuilder UseMiddlewareLogic1(this IApplicationBuilder builder)
{
return builder.UseMiddleware<MiddlewareLogic1>();
}
}
【问题讨论】:
-
您的
Configure方法中还有其他内容吗?具体来说,在app.Map(...)?之后 -
是的,我确实有 app.run(更新代码),我正在将最终输出写入响应。
标签: model-view-controller asp.net-core