WCF审核/日志记录

WCF审核/日志记录,wcf,soap,interceptor,system.diagnostics,basichttpbinding,Wcf,Soap,Interceptor,System.diagnostics,Basichttpbinding,我需要在我的WCF服务中提供不可否认性,并希望将所有输入的SOAP请求存储到带有签名/安全数据和所有信封内容的SQL server DB中 这样,当出现问题时,我们可以告诉客户端Hi,这是您的签名消息,与您编写的消息完全相同。 为此,我需要存储SOAP信封XML和持久化业务对象/事务之间的关系 示例:这是用于将客户ID=4567添加到我的客户数据表中的SOAP信封 我需要在SOAP信封和我的应用程序执行的业务事务之间建立链接。存储已记录邮件的@标识可能是一种解决方案。但是,我应该把它放在哪里?在

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

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

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

我需要在SOAP信封和我的应用程序执行的业务事务之间建立链接。存储已记录邮件的@标识可能是一种解决方案。但是,我应该把它放在哪里?在肥皂里?把它保存在记忆里

我阅读了有关登录WCF的书籍,并编写了一个数据库记录器,将日志信息插入表中,而不是文本文件,但我不知道如何将这些数据与到达我的WCF服务方法的已解析/反序列化busines datacontract对象相链接。 我甚至不知道这是不是正确的方法

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

如果您启用了WCF的消息记录功能,您可以编写一个自定义侦听器,并在其中添加所需的所有逻辑。要编写自定义侦听器,您只需相当简单地实现TraceListener接口,然后配置WCF使用它,将其添加到system.diagnostics中的侦听器部分,替换默认侦听器。

以及如何在侦听器和我的服务实现代码之间共享数据?