LABOJUMS: WCF pakalpojuma Smsvchost.exe pārstāj reaģēt, ja palaižat WCF pakalpojumu .NET Framework 3.0 vai .NET Framework 3.5

Pazīmes

Apsveriet šādu scenāriju:

  • Palaižat Microsoft .NET Framework 3.0 vai .NET Framework 3.5 Windows Communication Foundation (WCF) pakalpojumu.

  • WCF pakalpojums izmanto Net.Tcp portu koplietošanas pakalpojumu (Net.Tcp Port Sharing Service — Smsvchost.exe) un tiek viesots datorā, kurā darbojas interneta informācijas pakalpojumi (IIS).

  • Ir spēkā viens no šiem nosacījumiem:

    • Datorā, kurā darbojas programmatūra IIS, ir liels centrālā procesora lietojums.
    • Ierobežošana notiek pakalpojuma modelī WCF pakalpojumam.
    • WCF pakalpojumam vienlaikus tiek nosūtīti vairāki pieprasījumi.

Šajā scenārijā WCF pakalpojumam ir nepieciešams vairāk nekā viena minūte, lai apstrādātu pieprasījumu no klienta lietojumprogrammas. Turklāt notikumu žurnālā tiek reģistrēts kļūdas ziņojums, kurā apkopots tālāk norādītais notikuma ieraksts.

Piezīme

Žurnāla nosaukums: Sistēma

Avots: SMSvcHost 3.0.0.0

Datums:

Notikuma ID: 8

Uzdevuma kategorija: Koplietošanas pakalpojums

Līmenis: Kļūda

Atslēgvārdi: Klasisks

Lietotājs: LOCAL SERVICE

Dators:

Apraksts: nosūtot dublētu ligzdu, radās kļūda: šis turis procesa laikā ir noplūdis.

Identifikācijas numurs: 2620

Avots: System.ServiceModel.Activation.TcpWorkerProcess

Izņēmums:

System.TimeoutException: šī pieprasījuma darbība, kas tika nosūtīta, nesaņēma atbildi konfigurētajā taimautā laikā (00:01:00). Šai operācijai atvēlētais laiks var būt daļa no ilgāka taimauta. Tas var būt tāpēc, ka pakalpojums joprojām apstrādā operāciju vai pakalpojums nevarēja nosūtīt atbildes ziņojumu. Lūdzu, apsveriet iespēju palielināt operācijas taimautu (pārraidot kanālu/starpniekserveri uz IContextChannel un iestatot rekvizītu OperationTimeout) un nodrošiniet, lai pakalpojums varētu izveidot savienojumu ar klientu.

Piezīme. Lai no šīs problēmas atkoptu WCF pakalpojumu, ir jārestartē IIS.

Iemesls

Šī problēma rodas, jo Smsvchost.exe procesa taimauts iestājas pēc vienas minūtes, kad tas mēģina pārsūtīt ienākošo savienojuma pieprasījumu uz W3wp.exe darbinieka procesu. Turklāt šis taimauts nav konfigurējams.

Ja centrālajam procesoram ir liela darba slodze vai vienlaicīgi tiek saņemti daudzi savienojuma pieprasījumi, Smsvchost.exe process vienas minūtes laikā nevar pārsūtīt ienākošo savienojumu uz W3wp.exe darba procesu. Tādēļ Smsvchost.exe procesa taimauts un galu galā pārstāj reaģēt. Ja rodas šī problēma, Smsvchost.exe process nevar maršrutēt vēlākus pieprasījumus uz W3wp.exe darbinieka procesu, līdz programma IIS tiek restartēta.

Risinājums

Lai novērstu šo problēmu, lietojiet labojumfailu 2504602, kas aprakstīti Microsoft zināšanu bāzes (KB) rakstā.

  Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2504602 Labojumfailu apkopojuma pakotne ir pieejama WCF .NET Framework 3.0 SP2, .NET Framework 3.5 SP1 un .NET Framework 4

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".