Я новичок в azure и изучаю, как использовать HTTP Trigger. Я написал простую функцию, которую я запускаю локально, используя azure эмулятор хранилища
public static class Function1
{
[FunctionName("PutRecipeInCosmos")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]
HttpRequestMessage req, ILogger log)
{
return await Task.FromResult(req.CreateResponse(System.Net.HttpStatusCode.OK, "Hey!"));
}
}
Когда я нажимаю на эту функцию, это почтальон, консоль azure возвращает следующую ошибку:
Microsoft.AspNetCore.Server.Kestrel.Core: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
Мой метод помечен как asyn c и включает в себя ожидание возврата. Почему я вижу эту ошибку?
**** ОБНОВЛЕНИЕ ****
Я исправил это, возвращая возвращаемый OKObjectResult вместо HttpResonseMesssage. Похоже, что HttpRequestMessage.Create является синхронным вводом-выводом и не может обрабатываться асинхронно?
public static class Function1
{
[FunctionName("PutRecipeInCosmos")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]
HttpRequestMessage req, ILogger log)
{
return new OkObjectResult("Hey!");
}
}