Вам нужно вернуть Task
из вашего лямбда-выражения, чтобы компилятор распознал правильную перегрузку.
Вы пытаетесь использовать эту перегрузку:
UseStatusCodePages(IApplicationBuilder, Func<StatusCodeContext,Task>)
Но так как ваше лямбда-выражение не возвращает Task
, компилятор использует эту перегрузку:
UseStatusCodePages(IApplicationBuilder, Action<IApplicationBuilder>)
Следовательно, ваша переменная context
фактически ссылается на экземпляр IApplicationBuilder
, а не StatusCodeContext
.
Возвращение Task
из WriteAsync
должно помочь:
app.UseStatusCodePages(context =>
{
context.HttpContext.Response.ContentType = "text/plain";
return context.HttpContext.Response.WriteAsync(
"Status code page, status code: " +
context.HttpContext.Response.StatusCode);
});