2012-01-31 14 views
8

He permitido System.Transactions registro:advertencias fuente System.Transactions al utilizar LINQ-2-SQL

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

y ver un montón de advertencias de registro extrañas como:

  • Transaction.Rollback llamado
  • alistamiento de devolución de llamada negativo
  • TransactionScope incompleto

¿Puede por favor que alguien arroje algo de luz sobre él? Mi sistema funciona como se espera y no hay excepciones de nivel ADO.NET planteadas. El código DAL es un código L2S típico sin gestión explícita de transacciones o cualquier ataque.

+2

Puede usar el Analizador de SQL para ver qué SQL se envía al servidor para que esté más informado acerca de lo que está sucediendo. Sin más información, es muy difícil para nosotros dar una respuesta. –

+0

Supervisé la salida del generador de perfiles y no vi ningún criminal. Creo que las sentencias SQL generadas no tienen nada que ver con el problema, porque incluso si el servidor SQL causara algunas advertencias, no podrían propagarse de nuevo al código administrado, ¿o sí? – UserControl

+0

Depende (como siempre) estas advertencias desencadenadas por la base de datos o por el código .NET/L2S? Si son causados ​​por la base de datos, debe verificar los lotes/procedimientos que se ejecutan allí. (Creo que deben propagarse al cliente) –

Respuesta

1

El uso de un switchValor of Warning recogerá más que errores. De msdn:

Existe una condición que puede ocasionar un error o falla crítica (por ejemplo, la asignación falla o se acerca a un límite). El procesamiento normal de los errores del código de usuario (por ejemplo, transacción cancelada, tiempos de espera, autenticación fallida) también puede generar una advertencia.

Quizás esto es lo que quiere. Si es así, genial. De lo contrario, es posible que desee cambiarlo a Error.

Cuestiones relacionadas