C# WCF休息。是否可以将从客户端接收到的请求记录到数据库中?

C# WCF休息。是否可以将从客户端接收到的请求记录到数据库中?,c#,wcf,rest,C#,Wcf,Rest,我是WCF的新手。我有一个WCF REST服务,它实现ServiceAuthorizationManager。要求将从客户端接收的请求记录到数据库中的一个表中。我的意思是在实现ServiceAuthorizationManager的AuthorizationManager中,应该在哪里发生这种情况?以及如何收集所有信息,如客户端的IP地址、客户端传递的身份验证头,以便我可以填充一个对象并在Global.asax类的Application_EndRequest中进行db调用 请告知 谢谢, Raj

我是WCF的新手。我有一个WCF REST服务,它实现ServiceAuthorizationManager。要求将从客户端接收的请求记录到数据库中的一个表中。我的意思是在实现ServiceAuthorizationManager的AuthorizationManager中,应该在哪里发生这种情况?以及如何收集所有信息,如客户端的IP地址、客户端传递的身份验证头,以便我可以填充一个对象并在Global.asax类的Application_EndRequest中进行db调用

请告知

谢谢,
Raju

如果您在IIS 7+中托管您的服务,一个更简单的方法是设置AppFabric并为该服务启用端到端监控,而不是滚动您自己的服务。这显示了一个示例服务和使其工作所需的配置


如果您决定采用ServiceAuthorizationManager路线,请参阅使用该类。它显示了如何覆盖CheckAccessCore方法和检索消息头等。在这里,如果授权成功,您可以实现调用以记录请求。

考虑向服务中添加消息检查器。我发现这个链接可能会有所帮助:

AfterReceiveRequest
方法中,您可以从请求头中提取头信息等


是否在IIS中托管服务?我不认为AfterReceiveRequest足够。我在解析返回消息中的错误时出错,这是在调用AfterReceiveRequest之前发生的-这对于实际的故障排除毫无用处。