2011-11-10 4 views
9

Jaki jest skuteczny sposób postępowania z zasadami ograniczania dostępu do EWS?Radzenie sobie z ograniczeniami EWS

Próbuję przeczytać każdy e-mail w mojej skrzynce pocztowej, a także pobrać wszystkie załączniki. Problem, który napotykam, polega na tym, że Exchange często zwraca wyjątek mówiąc: The server cannot service this request right now. Try again later.. Wydaje się dość oczywiste, musiałem osiągnąć mój limit. Rozglądając się widzę, że ten błąd jest najprawdopodobniej spowodowany wyrzucaniem ile czasu spędzam na minutę pracy z CAS. Zasady ograniczania przepustowości wydają się być następujące: EWSPercentTimeInCAS.

Ponieważ mogę otrzymać tylko 1000 e-maili na jedno zapytanie i muszę zapytać o wszystkie 57 000 ~ e-maile. Jak mogę to sprawić?

Należy zauważyć, że nie próbuję ominąć zasady dławienia. Jedyną ideą, która przychodzi do głowy, jest wydawanie instrukcji Thread.Sleep(30000) za każdym razem, gdy pobierze 1000 e-maili (mój limit wyników wyszukiwania). Nie idealny jednak powinien działać, ponieważ pobieranie 1000 przedmiotów zajmuje znacznie mniej czasu.

Ten problem wydaje się wynikać z pobierania załączników. Skrzynka ma łącznie 7000 załączników.

+0

Czy zrobiłeś już więcej postępów w tej sprawie? – Midas

Odpowiedz

6

Twoje podejście jest poprawne. Musisz spowolnić liczbę żądań na minutę. Zobacz http://blogs.msdn.com/b/mstehle/archive/2010/11/09/ews-best-practices-understand-throttling-policies.aspx, aby uzyskać więcej informacji na ten temat.

+1

Dzięki za odpowiedź. Mój problem polegał na tym, że pobierałem załączniki w tle. Z 27 000 nici w tle możesz sobie wyobrazić, że nie zaszkodzi mi limit przepustnicy. :) – gcso

+2

Czy jest jakiś łatwy sposób na odczytanie konfiguracji dławienia dla EWS? Bez zależności od PowerShell lub Active Directory? Ponieważ te nigdy nie są dostępne poza siecią. –

+0

@IvanG. Trochę szczęścia?? – Midas