В Visual Studio я создал новый проект Function Azure с функцией httptrigger.
Это код для функции: < /p>
public class DoSomething
{
private readonly ILogger _logger;
public DoSomething(ILogger logger)
{
_logger = logger;
}
[Function("DoSomething")]
public async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
try
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
for (int i = 0; i
Функция вызывается с помощью этого приложения консоли: < /p>
Task.Run(async () =>
{
using var client = new HttpClient();
var res = await client.PostAsync("http://localhost:7129/api/DoSomething", null);
});
//Do other stuff
await Task.Delay(4000);
< /code>
Намеренно мое консольное приложение закрывается до того, как функция завершит свою работу.
В журнале функции я получаю эти сообщения: < /p>
[2025-02-06T10:38:32.483Z] C# HTTP trigger function processed a request.
[2025-02-06T10:38:32.485Z] Working... 0
[2025-02-06T10:38:33.486Z] Working... 1
[2025-02-06T10:38:34.491Z] Working... 2
[2025-02-06T10:38:35.497Z] Working... 3
[2025-02-06T10:38:36.508Z] Working... 4
[2025-02-06T10:38:37.518Z] Working... 5
[2025-02-06T10:38:38.533Z] Working... 6
[2025-02-06T10:38:39.549Z] Done
[2025-02-06T10:38:39.552Z] After Exception
[2025-02-06T10:38:39.593Z] Function 'DoSomething', Invocation id '5a240a47-710b-482e-8d43-3a0fdf08c73b': An exception was thrown by the invocation.
[2025-02-06T10:38:39.596Z] Result: Function 'DoSomething', Invocation id '5a240a47-710b-482e-8d43-3a0fdf08c73b': An exception was thrown by the invocation.
Exception: System.InvalidOperationException: An attempt was made to transition a task to a final state when it had already completed.
[2025-02-06T10:38:39.599Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled(CancellationToken cancellationToken)
[2025-02-06T10:38:39.601Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled()
[2025-02-06T10:38:39.603Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.ContextReference.CompleteFunction() in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\ContextReference.cs:line 59
[2025-02-06T10:38:39.606Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.DefaultHttpCoordinator.CompleteFunctionInvocation(String invocationId) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\DefaultHttpCoordinator.cs:line 55
[2025-02-06T10:38:39.608Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.FunctionsHttpProxyingMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\FunctionsMiddleware\FunctionsHttpProxyingMiddleware.cs:line 69
[2025-02-06T10:38:39.612Z] at Microsoft.Azure.Functions.Worker.FunctionsApplication.InvokeFunctionAsync(FunctionContext context) in D:\a\_work\1\s\src\DotNetWorker.Core\FunctionsApplication.cs:line 77
Stack: at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled(CancellationToken cancellationToken)
[2025-02-06T10:38:39.614Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled()
[2025-02-06T10:38:39.616Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.ContextReference.CompleteFunction() in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\ContextReference.cs:line 59
[2025-02-06T10:38:39.618Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.DefaultHttpCoordinator.CompleteFunctionInvocation(String invocationId) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\DefaultHttpCoordinator.cs:line 55
[2025-02-06T10:38:39.621Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.FunctionsHttpProxyingMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\FunctionsMiddleware\FunctionsHttpProxyingMiddleware.cs:line 69
[2025-02-06T10:38:39.624Z] at Microsoft.Azure.Functions.Worker.FunctionsApplication.InvokeFunctionAsync(FunctionContext context) in D:\a\_work\1\s\src\DotNetWorker.Core\FunctionsApplication.cs:line 77.
[2025-02-06T10:38:39.678Z] Executed 'Functions.DoSomething' (Failed, Id=5a240a47-710b-482e-8d43-3a0fdf08c73b, Duration=7506ms)
[2025-02-06T10:38:39.680Z] System.Private.CoreLib: Exception while executing function: Functions.DoSomething. Microsoft.Azure.WebJobs.Script.Grpc: Failed to proxy request with ForwarderError: RequestCanceled. System.Net.Http: The operation was canceled. System.Net.Sockets: Unable to read data from the transport connection: Operazione di I/O terminata a causa dell'uscita dal thread oppure della richiesta di un'applicazione.. Operazione di I/O terminata a causa dell'uscita dal thread oppure della richiesta di un'applicazione.
< /code>
Почему мой код функции бросает исключение? Выполнение кода функции.
Есть ли способ избежать исключения без необходимости ждать ответа функции от вызывающего абонента? < /p>
Спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... r-response
Функция httptrigger httptrigger Избегайте ответа ⇐ C#
Место общения программистов C#
-
Anonymous
1738844229
Anonymous
В Visual Studio я создал новый проект Function Azure с функцией httptrigger.
Это код для функции: < /p>
public class DoSomething
{
private readonly ILogger _logger;
public DoSomething(ILogger logger)
{
_logger = logger;
}
[Function("DoSomething")]
public async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
try
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
for (int i = 0; i
Функция вызывается с помощью этого приложения консоли: < /p>
Task.Run(async () =>
{
using var client = new HttpClient();
var res = await client.PostAsync("http://localhost:7129/api/DoSomething", null);
});
//Do other stuff
await Task.Delay(4000);
< /code>
Намеренно мое консольное приложение закрывается до того, как функция завершит свою работу.
В журнале функции я получаю эти сообщения: < /p>
[2025-02-06T10:38:32.483Z] C# HTTP trigger function processed a request.
[2025-02-06T10:38:32.485Z] Working... 0
[2025-02-06T10:38:33.486Z] Working... 1
[2025-02-06T10:38:34.491Z] Working... 2
[2025-02-06T10:38:35.497Z] Working... 3
[2025-02-06T10:38:36.508Z] Working... 4
[2025-02-06T10:38:37.518Z] Working... 5
[2025-02-06T10:38:38.533Z] Working... 6
[2025-02-06T10:38:39.549Z] Done
[2025-02-06T10:38:39.552Z] After Exception
[2025-02-06T10:38:39.593Z] Function 'DoSomething', Invocation id '5a240a47-710b-482e-8d43-3a0fdf08c73b': An exception was thrown by the invocation.
[2025-02-06T10:38:39.596Z] Result: Function 'DoSomething', Invocation id '5a240a47-710b-482e-8d43-3a0fdf08c73b': An exception was thrown by the invocation.
Exception: System.InvalidOperationException: An attempt was made to transition a task to a final state when it had already completed.
[2025-02-06T10:38:39.599Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled(CancellationToken cancellationToken)
[2025-02-06T10:38:39.601Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled()
[2025-02-06T10:38:39.603Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.ContextReference.CompleteFunction() in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\ContextReference.cs:line 59
[2025-02-06T10:38:39.606Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.DefaultHttpCoordinator.CompleteFunctionInvocation(String invocationId) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\DefaultHttpCoordinator.cs:line 55
[2025-02-06T10:38:39.608Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.FunctionsHttpProxyingMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\FunctionsMiddleware\FunctionsHttpProxyingMiddleware.cs:line 69
[2025-02-06T10:38:39.612Z] at Microsoft.Azure.Functions.Worker.FunctionsApplication.InvokeFunctionAsync(FunctionContext context) in D:\a\_work\1\s\src\DotNetWorker.Core\FunctionsApplication.cs:line 77
Stack: at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled(CancellationToken cancellationToken)
[2025-02-06T10:38:39.614Z] at System.Threading.Tasks.TaskCompletionSource`1.SetCanceled()
[2025-02-06T10:38:39.616Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.ContextReference.CompleteFunction() in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\ContextReference.cs:line 59
[2025-02-06T10:38:39.618Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.DefaultHttpCoordinator.CompleteFunctionInvocation(String invocationId) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\Coordinator\DefaultHttpCoordinator.cs:line 55
[2025-02-06T10:38:39.621Z] at Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.FunctionsHttpProxyingMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\_work\1\s\extensions\Worker.Extensions.Http.AspNetCore\src\FunctionsMiddleware\FunctionsHttpProxyingMiddleware.cs:line 69
[2025-02-06T10:38:39.624Z] at Microsoft.Azure.Functions.Worker.FunctionsApplication.InvokeFunctionAsync(FunctionContext context) in D:\a\_work\1\s\src\DotNetWorker.Core\FunctionsApplication.cs:line 77.
[2025-02-06T10:38:39.678Z] Executed 'Functions.DoSomething' (Failed, Id=5a240a47-710b-482e-8d43-3a0fdf08c73b, Duration=7506ms)
[2025-02-06T10:38:39.680Z] System.Private.CoreLib: Exception while executing function: Functions.DoSomething. Microsoft.Azure.WebJobs.Script.Grpc: Failed to proxy request with ForwarderError: RequestCanceled. System.Net.Http: The operation was canceled. System.Net.Sockets: Unable to read data from the transport connection: Operazione di I/O terminata a causa dell'uscita dal thread oppure della richiesta di un'applicazione.. Operazione di I/O terminata a causa dell'uscita dal thread oppure della richiesta di un'applicazione.
< /code>
Почему мой код функции бросает исключение? Выполнение кода функции.
Есть ли способ избежать исключения без необходимости ждать ответа функции от вызывающего абонента? < /p>
Спасибо < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79417612/azure-httptrigger-function-avoid-waiting-for-response[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия