Моя функция IFunctionsWorkerMiddleware в Azure не вызываетсяC#

Место общения программистов C#
Ответить
Anonymous
 Моя функция IFunctionsWorkerMiddleware в Azure не вызывается

Сообщение Anonymous »

Я пытаюсь реализовать промежуточное программное обеспечение для моего типа функций Azure HttpRequest, я использую интерфейс IFunctionsWorkerMiddleware в .NET 6:

Код: Выделить всё

public class HistoryLogMiddleware : IFunctionsWorkerMiddleware
{
public async Task Invoke(FunctionContext context, FunctionExecutionDelegate next)
{
var requestData = await context.GetHttpRequestDataAsync();
var body = await new StreamReader(requestData.Body).ReadToEndAsync();

Console.WriteLine($"Request Body: {body}");

await next(context);

var responseData =  context.GetHttpResponseData().Body;
var resp = await new StreamReader(responseData).ReadToEndAsync();

Console.WriteLine($"Response: {resp}");
}
}
В моем классе запуска есть следующий код:

Код: Выделить всё

[assembly: FunctionsStartup(typeof(Startup))]
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddDatabases();
builder.Services.AddExternals();
builder.Services.AddUseCases();

builder.Services.AddSingleton();
}
}
При тестировании функции доменный класс работает нормально (поскольку консоль показывает...), но промежуточное программное обеспечение никогда не регистрируется на консоли и не подключается в режиме отладки.
Моя функция:

Код: Выделить всё

public class RegisterClientFunction
{
private readonly IClientsDomain _clientsDomain;

public RegisterClientFunction(IClientsDomain clientsDomain)
{
_clientsDomain = clientsDomain;
}

[FunctionName(nameof(RegisterClientFunction))]
public async Task Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");

string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var data = JsonConvert.DeserializeObject(requestBody);

var resp = await ExecuterDomain.ExecuteAsync(() => _clientsDomain.RegisterClient(data));
return new ObjectResult(resp);
}
}
Кто-нибудь знает, почему промежуточное ПО не вызывается?
[img]https:/ /i.sstatic.net/fMd79O6t.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/784 ... -invokated
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»