2010-10-29 13 views
6

Ho bisogno di conoscere le best practice per evitare il timeout della connessione quando si utilizza LINQ to SQL nelle applicazioni .net specialmente quando si restituisce IQueryable<T> da livelli o livelli di accesso ai dati.best practice per evitare il timeout della connessione quando si utilizza LINQ to SQL

ottengo "timeout. Il periodo di timeout trascorso prima di ottenere una connessione dal pool. Questo potrebbe essersi verificato perché tutte le connessioni in pool erano in uso ed è stato raggiunto max dimensioni della piscina." errore durante il test della mia applicazione asp.net per i test webstress ?

risposta

7

http://www.geekscrapbook.com/2010/08/13/connection-timeout-using-linq-datacontext/

link si spiega quello che sarà il motivo di Timeouut utilizzando LINQ to SQl.You può aumentare manualmente l'esecuzione di query time.By default il suo 30 sec. Secondo a Visual Studio 2008 Vai

Strumenti-> Database Strumenti-> query & vista disegno

Qui avrete la possibilità di aumentare il tempo di esecuzione. Spero che ti aiuti.

Good Luck

+1

Grazie Prateek, in realtà il problema è se si ritorno IQueryable dal vostro livello di accesso ai dati (DAL) non è possibile utilizzare usando economico contesto dati – DSharper

4

È necessario aumentare il valore CommandTimeout proprietà nella DataContext oggetto (il valore predefinito è di 30 secondi), viene misurata in secondi, per esempio:

var myDataContext = new MyDbDataContext (myConnectionString) { CommandTimeout = 120 }; var rows = myDataContext.sp_Agent__Select (agentId);

+2

Ciò sembrerebbe essere una soluzione migliore in quanto non si desidera impostare necessariamente il timeout per ogni progetto creato –

1

In realtà, si potrebbe voler verificare se il server è effettivamente attivo. Mi sono imbattuto in questo problema - si scopre che ho dimenticato di riavviare il servizio MSSQL dopo averlo interrotto per la manutenzione.

niubbo errore di base, ma mi ha causato un settimane mal di testa

Problemi correlati