700 messaggi dal 18 febbraio 2002
www.dimsolutions.it
Buonasera,
ho un problema su un dominio su un server dedicato (insieme un 30 domini ospitati):

nel log della mia applicazione ho trovato l'errore " Unable to read data from the transport connection" al momento in cui si è bloccato l'application pool di IIS e il sito.

15/07/2011 17.42.36 ==> Errore non previsto: loadDataset Descrizione: Unable to read data from the transport connection. qry: SELECT i.id,cod,m.tipo as modalita,t.tipo as tipoImmobile,i.regione,i.prov,c.comune,mq,prezzo as prezzoE, i.immagine, descrizione, i.invetrina FROM t1 i,t2 m, t3 t, t4 c WHERE i.idmodalita=m.id AND i.idtipo=t.id AND i.idcomune=c.id AND i.visibile=1 AND i.idtipo=4 ORDER BY i.id DESC
15/07/2011 17.42.36 ==> Errore non previsto: Thread was being aborted.

Oggi a distanza di 3 giorni è ricomparso l'errore ma il sito non si è bloccato:

18/07/2011 17.10.20 ==> Errore non previsto: ExecuteSelect Descrizione: Unable to read data from the transport connection. qry: SELECT SitoOffline FROM Configurazione WHERE id='1'

Il sito ha una 70-80 accessi giornalieri ASP.NET + MYSQL su server dedicato, gentilmente vorrei avere anche un vostro parere per identificare il problema affinchè non si ripresenti.

Volevo capire a cosa può essere dovuto secondo voi

grazie
troppo generico. serve un trace per capire meglio cosa possa essere. così, a prima vista, ti direi che c'è qualcosa che fa memory leak, se l'app pool si blocca. fai using di tutte le risorse? (connection, command, reader, etc)

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
700 messaggi dal 18 febbraio 2002
www.dimsolutions.it
per using intendi la chiusura e null di reader, connection ecc?

nelle query ecc. faccio solo:
connection.close()

la cosa strana che sporadicamente colpisce ora anche altri domini presenti sul server (lappplicazione software la stessa) ma hanno meno accessi.
a meno che non hai blocchi try..catch ovunque, invocare il metodo Close non è abbastanza. potrebbe essere ovunque il problema, ti consiglio di provare un software di tracing e profiling. ce ne sono tanti, ad esempio quello di Reg Gate.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
700 messaggi dal 18 febbraio 2002
www.dimsolutions.it
ottimizzo le procedure che eseguono le query, pulendo
reader null
connection null
dataadapter null

aggiorno lapplicazione online e tengo in test per qualche giorno.
ti faccio sapere
grazie
700 messaggi dal 18 febbraio 2002
www.dimsolutions.it
ho ottimizzato le chiusure delle query in questo modo:

public DataSet loadDataset(DataSet dataset, string queryString)
{
MySqlConnection conn = null;
MySqlDataAdapter command= null;

try
{
conn = new MySqlConnection();
conn.ConnectionString = connstring;
conn.Open();

command = new MySqlDataAdapter(queryString,conn);
command.Fill(dataset,"Risultati");
}
catch (Exception e)
{
// scrivo log
CreateLogFiles();
ErrorLog("Errore non previsto: loadDataset Descrizione: " + e.Message + " qry: " + queryString);
}
finally
{
if (command != null) { command.Dispose(); command = null;}
if (conn.State == ConnectionState.Open) { conn.Close(); conn = null;}
}

return dataset;
}

secondo te è ok o così rimane "sporco" qualcosa?
è quello che fa lo using. btw, probabilmente te l'hanno già detto, ma i DataSet non sono il massimo e potrebbe essere una causa possibile se la tua app consuma molta memoria.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
700 messaggi dal 18 febbraio 2002
www.dimsolutions.it
al posto del dataset cosa potrei utilizzare?

senza stravolgere troppo il codice ovviamente considerando che riempio dei datagrid...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.