Poprawka: Smsvchost.exe usługi WCF przestaje odpowiadać po uruchomieniu usługi WCF w programie.NET Framework 3.0 lub.NET Framework 3.5


Objawy


Rozważ następujący scenariusz:
  • Program Microsoft.NET Framework 3.0 lub.NET Framework 3.5 usługi Windows Communication Foundation (WCF).
  • Usługa WCF używa usługi Udostępnianie portów Net.Tcp (Smsvchost.exe) i jest przechowywana na komputerze, na którym jest uruchomiony program Internet Information Services (IIS).
  • Spełniony jest jeden z następujących warunków:
    • Użycie Procesora jest wysokie na komputerze, na którym działa program IIS.
    • Przepustnicy występuje w modelu usług dla usługi WCF.
    • Wielokrotne żądania są wysyłane do usługi WCF w tym samym czasie.
W tym scenariuszu Usługa WCF trwa dłużej niż jedną minutę, aby przetworzyć żądanie od aplikacji klienta. Dodatkowo komunikat o błędzie, który asembluje następujący wpis zdarzenie jest rejestrowane w dzienniku zdarzeń:

Login: System

Źródło: SMSvcHost 3.0.0.0

Data:

Identyfikator zdarzenia: 8

Kategorii zadań: Usługa udostępniania

Poziom: Błąd

Słowa kluczowe: Klasyczne

Użytkownika: Usługa lokalna

Komputer:

Opis: Wystąpił błąd podczas wysyłania zduplikowane gniazda: Ten uchwyt jest teraz przecieku w procesie.

ID: 2620

Źródło: System.ServiceModel.Activation.TcpWorkerProcess

Wyjątek:

System.TimeoutException: Ta operacja żądania wysyłane nie otrzymał odpowiedzi w ciągu skonfigurowanego limitu czasu (00: 01:00). Czas przeznaczony na tę operację mógł część większego limitu czasu. Może to być, ponieważ usługa jest nadal przetwarzania operacji lub usługa nie może wysłać komunikatu odpowiedzi. Należy rozważyć zwiększenie limitu czasu operacji (przez rzutowanie kanału/proxy do IContextChannel i ustawienie właściwości OperationTimeout) i upewnij się, że usługa jest w stanie połączyć się z klientem.
Uwaga Należy ponownie uruchomić usługi IIS, aby odzyskać z tego problemu z usługą WCF.

Przyczyna


Ten problem występuje, ponieważ proces Smsvchost.exe limit czasu po jednej minucie, kiedy próbuje przesłać żądanie połączenia przychodzące do procesu roboczego W3wp.exe. Dodatkowo nie konfiguruje się ten limit czasu.

Gdy Procesor ma duże obciążenie, lub dużej liczby żądań połączeń równoczesnych są przychodzące, proces Smsvchost.exe nie można przenieść do procesu roboczego W3wp.exe połączenie przychodzące w ciągu jednej minuty. W związku z tym proces Smsvchost.exe limit czasu i ostatecznie przestaje odpowiadać. Gdy ten problem wystąpi, proces Smsvchost.exe nie można kierować żądań później do procesu roboczego W3wp.exe, ponownego uruchomienia usług IIS.

Rozwiązanie


Aby rozwiązać ten problem, należy zastosować poprawkę 2504602, który jest opisany w artykule bazy wiedzy Microsoft Knowledge Base (KB).

Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2504602 pakiet zbiorczy poprawek jest dostępna dla usług WCF.NET Framework 3.0 z dodatkiem SP2,.NET Framework 3.5 z dodatkiem SP1 i programu.NET Framework 4

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.