【发布时间】:2021-09-19 07:27:53
【问题描述】:
我在 write every request logs to database with nlog 的 IIS 中托管了 web api。它按预期工作。我们的 db 与其他项目共享,最近在 db 中看到了一些争用 - 这导致我们的一些 web api 调用需要更长的时间或超时。 (当前超时时间为 20 秒,不能增加超时时间)
我正在考虑使用nlog's async functionality,它有助于在单独的线程上异步写入日志。
在将调用返回给客户端后,IIS 将如何处理这些长时间运行的进程? 任何形式的见解都会有所帮助。
【问题讨论】:
-
您可以随时查看源代码:github.com/NLog/NLog/blob/…。它使用专用队列和计时器在后台线程上刷新队列。它与用户的上下文完全分离,因此如果您将消息写入日志,请确保在记录之前从上下文中捕获所需的所有内容。
标签: c# .net iis asp.net-web-api nlog