У меня есть проект веб-API .NET, который демонстрирует странное поведение, на которое я действительно не могу найти ответ.
Проблема заключается в том, что API возвращает противоречивые результаты от одного вызова кзатем, используя точно такие же параметры. Чтобы проверить это, я создал коллекцию почтальонов и выполнял вызов 25 раз с интервалом 100 мс между каждым вызовом. Для большинства вызовов я получаю ожидаемые результаты:
{
"Successful": true,
"Data": [{
"Version": 1.0,
"Code": "BC12",
"FN": "Mick",
"LN": "Jager",
"PH": "1111111111",
"OCC": "Dentist",
"ACT": "Y",
"ISA": "Y",
"DLID": "5874589",
"CB": null,
"CO": null
}],
"Exception": null,
"ResponseCode": 200
}
Однако иногда я просто получаю пустой ответ без ошибок:
{
"Successful": true,
"Data": [],
"Exception": null,
"ResponseCode": 200
}
За прошедший час яЯ выполнил вызов в общей сложности 55 раз, и 8 из них вернулись с пустым ответом (все в производственной среде).
Я сделал то же самое в промежуточной среде, и 0 из 55 пришлообратно с пустым ответом.
Возвращает версию моего пользовательского ответа в формате JSON, поэтому я знаю, что код не содержит ошибок, прежде чем он сможет создать данные. Еще одна странная вещь об этом - это происходит только в производственной среде. Если я выполняю те же 25 вызовов в промежуточную среду, я никогда не вижу пустой ответ, и все 25 вызовов возвращаются с данными. Опять же, каждый вызов имеет одинаковые параметры. Кто-нибудь видел что-то подобное? Это определенно должно быть связано с IIS или SQL-сервером, поскольку это не происходит на промежуточной стороне, и единственное различие между двумя средами - это IIS-сервер и SQL-сервер. Кроме того, трафик на сервер сейчас очень минимален, поэтому я не думаю, что объем трафика на сервер является проблемой.