L'app Web del nostro cliente si riavvia improvvisamente a intervalli casuali. Per ogni riavvio, abbiamo trovato una voce simile nel registro eventi di Windows:deadlocking di applicazioni Web ASP.NET: si pensa che sia causato dal blocco di SQL Server
Event Type: Warning
Event Source: W3SVC-WP
Event Category: None
Event ID: 2262
Date: 2/21/2010
Time: 1:33:52 PM
User: N/A
Computer: LIQUID-NXCFZ9DJ
Description:
ISAPI 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.
Questo è successo 10 volte in 3 settimane, molti di quelli che sono 2 o 3 volte in diverse ore, e anche andare oltre una settimana senza che ciò accada.
Nel crash dump che abbiamo forse 70-80 connessioni client, in questo modo:
GET request for <path here>
Mapped To URL <mapped path>
HTTP Version HTTP/1.1
SSL Request False
Time alive 00:55:24
QueryString <query string here>
Request mapped to
HTTP Request State HTR_READING_CLIENT_REQUEST
Native Request State NREQ_STATE_PROCESS
(che è di 55 minuti !!! non c'è ragione per una connessione client dovrebbe essere intorno così a lungo)
voci rilevanti in machine.config:
<system.net>
<connectionManagement>
<add address="*" maxconnection="200" />
</connectionManagement>
</system.net>
e (all'interno):
<deployment retail="true" />
<!--<customErrors mode="Off"/>-->
<processModel autoConfig="true"
memoryLimit="60"
maxIoThreads="200"
minIoThreads="30"
minWorkerThreads="40"
maxWorkerThreads="200"
clientConnectedCheck="00:00:05" />
<httpRuntime
minFreeThreads="20"
minLocalRequestFreeThreads="10"
enableKernelOutputCache="false"
maxRequestLength="10240" />
In questo ultimo momento siamo stati in grado di osservare come stava accadendo e abbiamo visto circa 20 query tutte in stato "sospeso" in Sql Server. Sembrava che avrebbero potuto essere tutti correlati a un tavolo (la tabella degli articoli, molto centrale per molte operazioni diverse).
Non eravamo sicuri di quale fosse la cosa migliore da fare nel bel mezzo del problema. Quando si è verificato l'arresto anomalo, Sql Server è stato eliminato.
Qualsiasi consiglio su cosa sta succedendo o su come scoprire cosa sta succedendo sarebbe molto apprezzato.
Buona domanda. Ma per favore impara a formattare le tue domande. Guarda la casella gialla "come formattare" quando inserisci la domanda. –