如何将嵌套调用与原始调用唯一关联?

时间:2016-10-19 22:30:03

标签: asp.net asp.net-mvc unity-container

我有使用统一拦截来记录方法时间的函数。当我想记录更深层次的信息,如数据库调用时间,后端时间等时,就会出现问题。

所以我的方法(比方说,M1)调用一些其他方法(M2)来调用其他方法等等,最后调用一个调用db的dbMethod。我能够单独记录所有函数的时间,但是对于我的日志服务器中的最终聚合,如果我能找到哪个M1调用,dbServer方法花了多少时间,将会很有帮助。

所以我可以使用一些像threadId这样的属性,在嵌套调用期间保持相同,以便我可以在最终聚合中使用它们(用于连接M1和dbMethod日志数据)?我想在M1的不同调用中,这个独特的价值是不同的。

1 个答案:

答案 0 :(得分:0)

对于那些面临同样问题的人,我使用CallContext类解决了它。只需在最外层调用中添加请求ID,它就会传播到所有内部嵌套调用。