我有一组与sql server数据库交互的wcf服务,我想为它添加一些审计,以查找服务的调用时间和操作。
我相信我有两种选择。
一个。将触发器添加到数据库表,在更新,插入等日志记录到另一个数据库 湾在我的wcf服务中添加一个拦截器,用于记录对Mongo大数据存储数据库的调用以及审计所需的数据
这个领域的最佳做法是什么,以及关于遵循方法的任何建议?
答案 0 :(得分:0)
作为第一反应,我会尝试启用跟踪。你会惊讶于它们能提供什么样的细节,特别是在诊断方面。它也非常简单,不涉及任何重新编译:
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "SdrConfigExample.e2e" />
</listeners>
</source>
</sources>
</system.diagnostics>
如果您使用Verbose
日志记录,您将获得几乎所有正在进行的事件的调试级日志记录。然后使用SvctraceViewer
返回并审核这些日志。
除此之外,请查看使用服务中的Trace.*
方法,以提供您可能需要的任何其他详细信息(例如,来自数据库的调用)。根据您设置up服务的方式,您可能还可以查看调试器,该调试器可以直接插入数据库上下文并在进行调用时输出。
答案 1 :(得分:0)