KORRIGERA: Smsvchost.exe för WCF-tjänsten slutar svara när du kör en WCF-tjänst i.NET Framework 3.0 och.NET Framework 3.5


Symptom


Föreställ dig följande:
  • Du kör ett Microsoft.NET Framework 3.0- eller.NET Framework 3.5-baserade Windows Communication Foundation (WCF) service.
  • WCF-tjänsten använder i Portdelningstjänsten för NET.TCP (Smsvchost.exe) och finns på en dator som kör Internet Information Services (IIS).
  • Någon av följande förutsättningar föreligger:
    • CPU-användningen är hög på den dator som kör IIS.
    • En begränsning som uppstår i en servicemodell för WCF-tjänsten.
    • Flera begäranden skickas till WCF-tjänsten på samma gång.
I det här fallet tar WCF-tjänsten längre tid än en minut att bearbeta en begäran från ett klientprogram. Dessutom loggas ett felmeddelande som monterar posten följande händelse i händelseloggen:

Loggnamn: System

Källa: SMSvcHost 3.0.0.0

Datum:

Händelse-ID: 8

Aktivitetskategori: Delningstjänst

Nivå: fel

Nyckelord: klassisk

Användare: Lokal tjänst

Dator:

Beskrivning: Ett fel uppstod när utförsel duplicerade socket: handtaget nu läckt i processen.

ID: 2620

Källa: System.ServiceModel.Activation.TcpWorkerProcess

Undantag:

System.TimeoutException: Denna begärandeåtgärd som skickats till tog inte emot ett svar inom den angivna tidsgränsen (00: 01:00). Den tid som tilldelats till den här åtgärden kan ha varit en del av en längre tidsgräns. Detta kan vara att tjänsten fortfarande bearbetar åtgärden eller eftersom tjänsten inte kunde skicka ett svarsmeddelande. Bör du öka tidsgränsen för åtgärden (genom kastar kanal/proxy till IContextChannel och ställa in egenskapen OperationTimeout) och kontrollera att tjänsten kan ansluta till klienten.
Obs! Du måste starta om IIS om du vill återställa WCF-tjänst från problemet.

Orsak


Det här problemet uppstår eftersom processen Smsvchost.exe på grund av timeout efter en minut när det försöker överföra en inkommande anslutningsbegäran till arbetsprocessen W3wp.exe. Dessutom är timeout icke konfigurerbara.

När Processorn har hög arbetsbelastning eller när många samtidiga begäranden inkommande kan inte Smsvchost.exe-processen överföra den inkommande anslutningen till arbetsprocessen W3wp.exe inom en minut. Därför Smsvchost.exe processen timeout och så småningom slutar svara. När problemet uppstår kan inte processen Smsvchost.exe cirkulera senare begäranden till arbetsprocessen W3wp.exe tills IIS startas.

Lösning


Lös problemet genom att installera snabbkorrigering 2504602 som beskrivs i artikeln i Microsoft Knowledge Base (KB).

För mer information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2504602 ett samlat snabbkorrigeringspaket är tillgängligt för WCF i.NET Framework 3.0 SP2,.NET Framework 3.5 SP1 och.NET Framework 4

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".