我有一个要求,我想针对当前请求将WCF方法的响应记录到IIS日志中。这目前已实现,但问题是我必须先将响应对象序列化,然后再将其记录为AppendToLog方法,因为它仅采用字符串输入参数,而这种序列化大部分时间都在进行。这会大大增加总体响应时间。
我想了解在将响应返回给客户端之后是否可以通过任何方式进行此日志记录?我试图在return语句之前异步执行此操作,但是由于当前上下文为空,因此无法正常工作。
请让我知道如何解决此问题?
答案 0 :(得分:0)
是否可以克隆CurrentContext
对象,然后将克隆的副本传递给您引用的异步方法?或将上下文对象中所需的值放入单独的变量中,然后将这些变量直接传递到async方法中。
您肯定要进行负载测试,如果...如果序列化花费的时间太长,并且端点调用过多,则线程数可能会非常高。
答案 1 :(得分:0)
一种选择是将LogWriting委派到应用程序中的其他线程。 这样,您可以将对象推送到“记录队列”并继续进行调用。
处理日志写入的线程可以按自己的进度追加到日志中。