WCF审核/日志记录

时间:2010-07-20 19:57:25

标签: wcf soap interceptor system.diagnostics basichttpbinding

我需要在我的WCF服务中提供不可否认性,希望将我所有的SOAP请求存储到带有签名/安全数据和所有信封内容的SQL服务器数据库

这样,当出现问题时,我们可以告诉客户“嗨,这是您的签名消息与您编写的完全相同。 为此,我需要存储SOAP信封XML和我持久化的业务对象/事务之间的关系。

示例: THIS 是用于将客户ID = 4567 添加到我的客户数据表的 SOAP信封

我需要在SOAP信封和我的应用程序执行的业务事务之间建立一个链接。存储已记录消息的@@ identity可能是一种解决方案。但是,我该把它放在哪里?在SOAP Body中?把它留在记忆中?

我正在阅读有关登录WCF的内容,并编写了一个数据库记录器,它将日志信息插入表中而不是文本文件,但我不知道如何将这些数据与已解析的/反序列化的bussines datacontract对象到达我的WCF服务的方法。 我甚至都不知道这是否是一种严谨的做法!

任何模式/提示/提示/工具/帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

如果您已启用WCF(http://msdn.microsoft.com/en-us/library/ms730064.aspx)的消息记录功能,则可以编写自定义侦听器,并添加所需的所有逻辑。要编写自定义侦听器,您只需实现TraceListener接口(相当简单),然后配置WCF使用它,将其添加到system.diagnostics内的侦听器部分,替换默认侦听器。