Mamy usługę WCF hostowaną w IIS. W plikach dziennika widzę, że klient wysyłający żądanie trwające ponad 3 minuty otrzymuje błąd HTTP 503 (usługa niedostępna).Jak zmienić limit czasu w usłudze WCF hostowanej w usługach IIS?
Jak zmienić limit czasu? Aby przetestować działanie, zmniejszyłem limit czasu do 3 sekund, aby upewnić się, że upłynął limit czasu.
Próbowałem
<system.web>
<httpRuntime executionTimeout="3"/>
</system.web>
co wydawało się nic nie robić.
Próbowałem również zmienić wiązanie bez skutku.
<basicHttpBinding>
<binding name="basicHttp" receiveTimeout="00:00:03" sendTimeout="00:00:03" >
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
Uwaga, próbuję uzyskać usługę WCF, która zwróci pewnego rodzaju awarię po upływie kontrolowanego przez nas czasu. Nie oczekuję, że żądanie, które trwało dłużej niż oczekiwano, zakończy się.
Każda pomoc najbardziej ceniona przed wyrywaniem włosów.
Wystarczy, aby wyjaśnić ...
Serwis został uruchomiony przez kilka miesięcy. Ale przetwarzając sporadyczne długo działające żądanie, klient otrzymuje odpowiedź HTTP 503 po 3 minutach. W tle widać, że żądanie zostało prawidłowo przetworzone, ale zajęło> 5 minut. Oczywiście w tym momencie jest już za późno, ponieważ klient otrzymał już odpowiedź błędu.
Inne żądania są przetwarzane normalnie.
Obciążenie układu w tym punkcie jest bardzo niskie. W rzeczywistości jest to środowisko testowe, a transakcje są pojedynczo, bez nakładania się.
Jestem również całkiem pewien, że wiązania są połączone z punktami końcowymi. Otworzyłem plik konfiguracyjny w edytorze konfiguracji WCF i wszystko jest poprawnie połączone.
Czy możliwe jest skonfigurowanie limitu czasu w tym momencie w WCF? W sposób, który rozumiem, jeśli nie, ale dlaczego jest zwracany błąd HTTP 503?
Wszystko, co naprawdę chcielibyśmy zrobić, to kontrolować czas, zanim zwrócona zostanie odpowiedź 503.
Czy zastanawiałeś się nad możliwością uruchomienia tego asynchronicznie i odpytania wyniku? – ChrisBint
Usługa jest już w produkcji od pewnego czasu i tego rodzaju zmiana nie nastąpi w najbliższej przyszłości. Na razie chcemy kontrolować czas oczekiwania. – illusio
Jeśli usługa ma błąd wiązania (bez specjalnej obsługi), klient zobaczy tylko błąd http. Jeśli zmienisz limity czasu serwera proxy na 3 sekundy, klient powinien zobaczyć oczekiwany wyjątek komunikacji. – ErnieL