2010-07-22 162 views
2

我目前正在开发将在Microsoft Azure上运行的WCF REST Web服务。为了限制每个IP地址的请求数量以防止滥用,我目前使用ASP.NET缓存存储IP和超时。WCF服务:ASP.NET缓存或SQL

此方法效果很好,但自从与天青muliple VM实例不共享一个缓存,请求可以在不同的虚拟机之间进行分割,如果一个虚拟机被复位清零。

我不认为这是一个主要问题,但由于我已经将用户信息存储在SQL Azure数据库中并使用WCF服务对用户进行身份验证,我最好使用数据库而不是ASP.NET缓存吗?

任何爱人都会很有帮助。

回答

2

如何使用混合方法?除了将其放入缓存中之外,您还可以将其存储到SQL数据库中。然后,当它们碰到不同的实例时,它将随着存储在数据库中的时间被放入缓存中。尽量减少往返数据库的次数,并将信息提供给所有服务器。

+0

感谢您的想法。 – Bram 2010-07-22 02:31:23

1

您必须决定阈值何时可接受。
来自缓存的数据会更快,但存在风险并不代表实际当前数据。在从数据库中获取数据的地方是新鲜的,但是需要时间才能访问数据库并返回。

+0

感谢您的帮助。 – Bram 2010-07-22 02:31:43