2010-12-18 11 views
6

Istnieje usługa WCF z długim wątkiem asynchronicznym. Ta długotrwała operacja może działać dłużej niż 1 dzień. Jesteśmy gospodarzem usługi WCF w IIS 6.Asynchroniczny wątek długo działający w WCF

nitka działa OK, ale w 20 minut otrzymujemy komunikat o błędzie:
„Temat został przerwany”

wątek jest martwy jako wynik.

konfiguracja

Nasze usługi WCF:
[ServiceBehavior (InstanceContextMode = InstanceContextMode.Single)]
[ServiceBehavior (ConcurrencyMode = ConcurrencyMode.Single)]

mogą Państwo zaproponować źródło tego problemu?

Dziękuję za odpowiedzi.

Odpowiedz

9

Jeśli nie ma żadnej aktywności (żadnych żądań) do tej usługi internetowej, usługi IIS mogą podjąć decyzję o usunięciu domeny aplikacji, co oczywiście spowoduje zabicie wszystkich wątków. Wartość domyślna to 20 minut i można ją skonfigurować we właściwościach puli aplikacji w IIS. Istnieją również inne czynniki, które mogą powodować recykling puli aplikacji, na przykład system działający z małą ilością pamięci. Tak więc hostowanie takich rzeczy w IIS może nie być niezawodne. Możesz rozważyć hosting długich uruchomionych zadań w Usługach Windows.

+0

@Artur, sprawdź ustawienia puli aplikacji, chociaż zdecydowanie zaleca się korzystanie z usług systemu Windows w takich zadaniach. –

+2

Dziękuję. Myślę, że powinniśmy go obsługiwać w usłudze Windows. –

7

IIS6 ma ustawienie, które spowoduje wyłączenie puli aplikacji po ustalonym czasie bez żądań, domyślnie jest to 20 minut. Wygląda na to, że właśnie na to się natknąłeś. Możesz znaleźć to ustawienie w obszarze Właściwości pul aplikacji => Zakładka Wydajność => Usuń znacznik wyboru w "Zamykanie procesów roboczych po bezczynności dla".

Generalnie uważa się, że złym pomysłem jest utrzymywanie długotrwałych zadań w ramach IIS, ponieważ istnieje wiele rzeczy, które mogą przerwać wątek lub całkowicie zakończyć proces. Pula aplikacji jest jedną z najbardziej znanych.

+0

Dziękuję @driis za komentarz. –

2

Możesz mieć hosta usługi systemu Windows punkt końcowy WCF, który uruchamia długotrwałe zadanie. Usługi Windows mają działać długo, długo i idealnie nadają się do tej sytuacji.

Powiązane problemy