Я звоню в API, который синхронизирует и сохраняет встречи в / из моего приложения и почтовой программы, которая чаще всего является почтой Outlook.Звонки в API осуществляются из веб-приложения, и в течение некоторого времени он работает нормально, но затем, сразу через несколько часов, звонки не выполняются.Это продолжается некоторое время и снова начинает работать через некоторое время.
В начале для DefaultConnectionLimit было установлено значение 100, и в этом сценарии процесс через некоторое время перестал работать (например, от 30 минут до 1 часа).Тогда DefaultConnectionLimit был установлен в 20, и в этом случае он работал нормально в течение 3-4 часов и перестал работать после этого.Я не знаю, является ли это действительной причиной, но просто упомяну.
Код, где выполняется вызов API из веб-приложения, указан ниже:
public bool SyncNewAppToExch(string encryptedAppSyncDetails)
{
try
{
string result = string.Empty;
JArray paramList = new JArray();
paramList.Add(encryptedAppSyncDetails);
var emailApiUrl = ConfigurationManager.AppSettings["emailApiUrl"].ToString();
Uri baseAddress = new Uri(emailApiUrl);
var url = "/api/EmailProcess/ManualSaveAppointments";
HttpClient client = new HttpClient();
client.BaseAddress = baseAddress;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Task.Run(() => client.PostAsJsonAsync(url, paramList)).Wait(5000);
var responseMessage = true;
if (responseMessage)
return true;
else
return false;
}
catch (Exception ex)
{
return false;
}
}
Исключениепосле ошибки вызова API читается:
Исключение: System.AggregateException: произошла одна или несколько ошибок.System.Threading.Tasks.TaskCanceledException: задача была отменена.--- Конец внутренней трассировки стека исключений --- в System.Threading.Tasks.Task1.GetResultCore (Boolean waitCompletionNotification) в System.Threading.Tasks.Task1.get_Result ()