133 messaggi dal 22 febbraio 2006
Ciao a tutti,

ho un problema con la prima connessione al server SQL. Solo la prima volta dopo aver avviato il servizio SQL Server (Express) mi da il seguente errore:

Si è verificato un errore a livello di trasporto mentre si stava inviando la richiesta al server. (provider: Provider memoria condivisa, error: 0 - Nessun altro processo all'altra estremità della pipe.)

Ho trovato qls cercado online ma nessuna risposta fa al caso mio.
Avete qualche suggerimento? Lo fa solo la prima volta dopo aver riavviato il servizio.

Altra domanada.
Uso la sintassi using (...) seguente:
using (SqlConnection cn = new SqlConnection(strConn))
{
cn.Open();
string sql = "INSERT INTO tbl (campo1) VALUES (@campo1)";
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cmd.Parameters.Add(new SqlParameter("@campo1", valore));
cmd.ExecuteNonQuery();
}
}

che libera correttamente tutte le risorse, ma se verifico il numero di connessioni per il DB in questione con la seguente qry

---------------------
SELECT DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame

SELECT COUNT(dbid) as TotalConnections FROM sys.sysprocesses WHERE dbid > 0
---------------------

mi da sempre che c'è almeno una connessione verso quel DB. E' Corretto?

Ciao e grazie,

Matteo
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

mattew ha scritto:

mi da sempre che c'è almeno una connessione verso quel DB. E' Corretto?

probabilmente sì.
Quando distruggi la connessione, in realtà la stai restituendo al connection pool che si preoccuperà di tenerla aperta e affidarla al prossimo client che ne farà richiesta. Si tratta di un meccanismo di ottimizzazione, qui trovi delle informazioni:
http://msdn.microsoft.com/it-it/library/8xx3tyca.aspx

Giusto per curiosità, prova a disabilitare il connection pooling aggiungendo Pooling=false alla tua connectionstring. A quel punto dovresti vedere le connessioni scendere a zero, se nessuno le sta usando. Poi, ovviamente, riabilitalo.


All'altra domanda non so rispondere. Potrebbe essere anche questo un problema legato al connection pooling. Se resetti il servizio mentre una connessione è attiva nel pool, alla prossima richiesta web verrà affidata una connessione non più utilizzabile.
Dovresti riavviare anche il sito web contestualmente al riavvio di Sql Express (ma perché riavviarlo, dopotutto?).

ciao

Enjoy learning and just keep making

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.