存储最近10个Web服务调用

时间:2010-02-18 19:27:28

标签: asp.net web-services

我有一个SOAP Web服务,我正在尝试计算如何保存/记录每个用户的最后10个请求。每个用户都需要在每个请求中发送他们的用户/传递,因此很容易知道请求来自谁。保存了最后10个请求,我的目标是开发某种页面,允许他们使用他们的凭据登录并查看原始请求,实际的SOAP消息,http头信息以及我能想到的任何相关内容。

关键是允许人们解决他们自己的连接问题,而不是每次无法连接时都要联系我,无法格式化他们的请求等等。

我的第一个想法是将所有这些信息存储在哈希表中的内存中,但是当我们有数百/数千个用户访问Web服务时,这可能存在可伸缩性问题。

我们可以使用我们的数据库来存储这些请求。我可能需要创建一些只在缓冲区达到一定数量的请求后才更新数据库的“缓冲”机制,而不是每次都访问数据库。是否存在可以执行此操作的现有库或机制?

我们无法将这些请求存储在托管Web服务的计算机上的文件系统上。由于这些请求可能包含敏感信息,因此我需要解决这个问题。

或许有更好的方法来实现我想要做的事情?

1 个答案:

答案 0 :(得分:2)

我看到两种选择。

1.-混合使用两种方法:在内存中创建哈希表,当它达到限制(例如,1000个请求)时,将它们推送到数据库。不需要特殊的库。 hastable是你的内存缓冲区。

2.-设置一个完全不同的进程sniffing the requests,并让客户端下载数据包捕获(或处理并自己呈现)。这可以说是更多的工作,但将请求保存与您的应用程序分开。如果需要加载,你甚至可以将嗅探器移动到另一台机器上。