2012-01-31 5 views
8

Io ho abilitato System.Transactions registrazione:avvertimenti System.Transactions di origine quando si utilizza Linq-2-Sql

<system.diagnostics> 
    <sources> 
     <source name="System.Transactions" switchValue="Warning"> 
      -- my listeners here 
     </source> 
    </sources> 
</system.diagnostics> 

e vedere un sacco di avvertimenti di registro strane come:

  • Transaction.Rollback chiamato
  • arruolamento richiamata negativo
  • TransactionScope incompleta

Può piacere qualcuno far luce su di esso? Il mio sistema funziona come previsto e non ci sono eccezioni di livello ADO.NET sollevate. Il codice DAL è il tipico codice L2S senza gestione esplicita delle transazioni o eventuali hack.

+2

È possibile utilizzare SQL Profiler per vedere quale SQL viene inviato al server in modo da essere più informato su cosa sta succedendo. Senza ulteriori informazioni è molto difficile per noi dare una risposta. –

+0

Ho monitorato l'output del profiler e non ho visto nessun criminale. Penso che le istruzioni SQL generate non abbiano nulla a che fare con il problema perché anche se il server SQL ha causato alcuni avvisi che non potevano propagarsi al codice gestito, vero? – UserControl

+0

Dipende (come sempre) questi avvisi attivati ​​dal database o dal codice .NET/L2S? Se sono causati dal database, è necessario controllare i batch/procedure che vengono eseguiti lì. (Penso che debbano essere propagati al client) –

risposta

1

L'utilizzo di uno switchValue di Warning raccoglierà più di semplici errori. Da msdn:

Esiste una condizione che può provocare successivamente un errore o un errore critico (ad esempio, mancata allocazione o in prossimità di un limite). Anche l'elaborazione normale degli errori dal codice utente (ad esempio, transazione interrotta, timeout, autenticazione fallita) può generare un avviso.

Forse questo è quello che vuoi. Se è così, bello. Altrimenti, potresti volerlo cambiare in Errore.