我在我的应用程序中有一个需求,我认为可以通过使用线程本地存储来满足,但我想知道这是否是最好避免的事情之一。
我已经阅读了一些关于这个主题的文章:
有什么建议或需要注意的问题吗?
[编辑]
以下是用例:
我通过少量方法漏斗所有数据访问,并记录有关每个查询的大量日志。 我记录的一件事是命令文本的完整转储,其中填充了命令,以便我可以直接从跟踪日志中复制粘贴到Sql Management Studio中。
在我的Web应用程序的global.asax中,当我遇到未处理的异常时,我会向管理员发送尽可能多的信息的电子邮件。 当我收到SqlException时,我想将该sql命令转储文本放入此电子邮件中,这样当页面因查询而崩溃时,我就可以节省挖掘跟踪日志的时间。
我不想更改我的数据访问类的方法签名,只是为了在出现异常时传递一些引用,然后再将其取出。 我曾经考虑过TLS可能是放置"lastsqlcommand"之类内容的好地方,但这似乎不是可行的解决方案。
我已经阅读了一些关于这个主题的文章:
http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx
我知道如何使用它,但我想知道我是否应该使用它。有什么建议或需要注意的问题吗?
[编辑]
以下是用例:
我通过少量方法漏斗所有数据访问,并记录有关每个查询的大量日志。 我记录的一件事是命令文本的完整转储,其中填充了命令,以便我可以直接从跟踪日志中复制粘贴到Sql Management Studio中。
在我的Web应用程序的global.asax中,当我遇到未处理的异常时,我会向管理员发送尽可能多的信息的电子邮件。 当我收到SqlException时,我想将该sql命令转储文本放入此电子邮件中,这样当页面因查询而崩溃时,我就可以节省挖掘跟踪日志的时间。
我不想更改我的数据访问类的方法签名,只是为了在出现异常时传递一些引用,然后再将其取出。 我曾经考虑过TLS可能是放置"lastsqlcommand"之类内容的好地方,但这似乎不是可行的解决方案。