Ежедневно в 19:00 я быстро отправляю 10 000 электронных писем с помощью службы Windows. Я использую веб-API для отправки электронной почты.
I am using Task=>Run() method calling Web API to send emails.
**Below is code snapshot**
private static readonly HttpClient Client = new HttpClient();
Void SendemailByAPI(){
Task.Run(() => SendemailByAPI());
}
public SendemailByAPI()
{
try{
HttpResponseMessage response = client.PostAsync(apiName,httpContent).Result;
return response
}
catch(exception ex)
{
writelog.log(ex.tostring());
}
}
По этому коду некоторые электронные письма отправляются, а некоторые не отправляются по электронной почте через WEB API.
Ниже приведено сообщение об ошибке. В моем пользовательском журнальном файле записано: - Задача была отменена.
LLogMessage: System.AggregateException: произошла одна или несколько ошибок. ---> System.Threading.Tasks.TaskCanceledException: задача была отменена.
--- Конец внутренней трассировки стека исключений ---
в System.Threading.Tasks.Task.ThrowIfExceptional (логическое значение includeTaskCanceledExceptions)
в System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task
1.get_Result ()
в SkillSurvey.Common.ApiGateway.PostAsyncRequest (клиент HttpClient, строка baseAddressURL, строка apiName, параметр StringJsonString) в D: \ VSTS \ Reference \ Development \ Code \ SkillSurvey.Common \ EmailAPIGateway \ ApiGateway.line:
---> (Внутреннее исключение # 0) System.Threading.Tasks.TaskCanceledException: задача была отменена.
**Error from Windows HTTP.SYS errors are logged to %windir%\System32\LogFiles\HTTPERR**
-10 Request cancelled apppool name
-10 Request cancelled apppool name ---etc
**I am not getting why this eroor occurs**
1.Task=>Run() OR 2. HTTPCLIENT timeout OR 3. httpclient.PostAsyc().Result 4.WEBAPI app pool size (queue length 1000)
Threading issue or httpclient object timeout or calling many webapi requests at a time
I was tried to solve this issue below things but not resolved it Plz help me.
1. remove Task=>Run() and call directly WEB API URL.
2. Remove .Result and only call httpclient.PostAsyc(string url,content)--task cancel not error logged in a custom file but not send all emails but in HTTP.SYS same error -10 Request cancelled the app pool name
Can anyone get the same problem? Thanks in advance for your any suggestion.