Tengo un requisito en mi aplicación que creo que se puede cumplir mediante el uso de almacenamiento local de subprocesos, pero me pregunto si es una de esas cosas que es mejor evitar.¿Cuáles son las mejores prácticas para usar el almacenamiento local de subprocesos en .NET?
He leído algunos artículos sobre el tema:
http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx
sé cómo Para usarlo, me pregunto si yo debería usarlo.
¿Algún consejo, debe tener en cuenta?
[Editar]
Aquí está el caso de uso:
I embudo de todos los accesos a datos a través de algunos métodos que hacen un montón de registro sobre cada consulta. Una cosa que registro es un volcado completo del texto de comando con los comandos completados para poder simplemente copiar y pegar desde mis registros de rastreo directamente en Sql Management Studio.
Camino en global.asax en mis aplicaciones web Envío un correo electrónico a los administradores con tanta información como pueda cuando recibo una excepción no controlada. Quiero poner ese texto de volcado de comando sql en este correo electrónico cuando obtengo una SqlException, lo que me ahorrará tiempo de buscar registros de seguimiento cuando una página explota debido a una consulta.
No quiero cambiar las firmas de método de mis clases de acceso a datos solo para poder pasar alguna referencia a lo largo de la pila, solo para sacarla cuando recibo una excepción. Estaba pensando que tal vez TLS sería un buen lugar para poner algo como "lastsqlcommand", pero eso no parece una solución viable.
Siempre he evitado el almacenamiento local de subprocesos y encontré otra forma de hacer lo mismo. Mi pensamiento siempre ha sido que el almacenamiento local de subprocesos es probablemente más lento que el acceso directo (no estoy seguro de si esto es correcto). Sería curioso lo que otros piensan también. – dongola7