Jest następująca sytuacja, jest aplikacja kliencka, która wysyła w pętli bardzo dużą ilość danych, przypuśćmy 1500 paczek po 100 rekordów do API.
Jak otrzyma po wysłaniu pierwszej komunikat 200 wysyła następną.
API odbiera to i zapisuje do bazy. W logach nie ma nic niepokojącego.
W ciągu sekundy udaje się zapisać około 3 wywołania.
Problem jest taki, że po około mniej więcej 400-800 paczkach aplikacja kliencka dostaje: "Unable to connect to the remote server".
W logach API nie ma żadnego błędu. Tak jakby, w ogóle taki request nie przyszedł.
W logach IIS znalazłem tylko często powtarzającą się linijkę:" - - - - - Timer_ConnectionIdle" przy zbieżnym adresie klienta.
Pewnie powinno być to zrobione inaczej, przez wysłanie pliku z tymi danymi zamiast pchać to wszystko przez http ale na to nie mam wpływu.
No i teraz czy rozwiązaniem może być ograniczenie liczby paczek, przez ich zwiększenie np 150 po 1000 rekordów, dzięki czemu będzie rzadziej, i czas nieznacznie się wydłuży
bądź kazać aplikacji klienckiej czekać np 1 sekundę co obrót pętli.
Bo mam wrażenie, że z jakiegoś powodu serwer odrzuca połączenie nawet nie pozwalając na wejście do aplikacji przez to, że dostaje z tego samego adresu lawinę requestów,
taki mały DDoS. Czytałem coś o Dynamic IP Address Restrictions, który można dorzucić do IIS, i pozwolić na większa liczbę danych z tego samego adresu, ale to sugerowałoby,
że jest jakaś domyślna wartość requestów per sekunda per adres ale nie mogę znaleźć nigdzie informacji na ten temat. Myślę dobrze czy nie ma to sensu?
Bo jeszcze jest możliwość, że aplikacja kliencka robi coś nie tak ale do niej nie mam dostępu.