c# - 在 Web 服务中重用/缓存数据表

标签 c# web-services caching

我有一个网络应用程序可以提取数据表并显示结果。由于业务的性质,所有业务规则都包含在 Web 应用程序必须从中提取的 dll 中。因为有多个站点,我们不想在所有部署的许多应用程序中包含核心 dll,所以我们将对核心 dll 的所有调用合并到一个 web 服务中。这有助于在更新核心 dll 时只需要推送一个新应用程序(即 Web 服务)。

通过这个架构,我发现任何登录到任何网络应用程序的人都会导致对数据库的多次调用,以获取随后被解析的数据表。有问题的数据表变化缓慢,我只需要每 4-6 小时刷新一次。

当用户想要查看同一数据表的不同 View 时,我很熟悉在 session 中存储这样的东西。然而,网络服务 session 并不真正适用。在 web 服务中缓存数据表的好方法是什么,这样我们就不会重复昂贵地访问数据库。

网络服务和应用程序都是用 C# 和 ASP.NET 2.0 编写的,我们使用的是 VS2005。

最佳答案

作为一种非常便宜的方式(但它存在),您可以使用 WebMethod 属性的 CacheDuration 属性,它将缓存 web 方法调用的结果。更多信息请访问:
CacheDuration property

这可能会有所帮助,只是一个想法...

关于c# - 在 Web 服务中重用/缓存数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400926/

相关文章:

c# - Quartz.net:在特定时间间隔内运行作业

android - 如何收听 Android 输出(使用嗅探器)?

java - 哪个实现更好 : Cache based on WeakHashMap or cache based on ThreadLocal?

C# 2.0 双重处理 - 奇怪的行为

c# - SortedList 中值的总和和键的条件

c# - 将日期时间字符串列表转换为日期时间值列表

wcf - 通过浏览器调用WCF服务方法

java - 构建供多个平台使用的 Web 服务 - 我应该使用什么格式?

java - 为什么库更喜欢在边缘情况下重新计算不可变对象(immutable对象)的哈希码?

java - 如何配置磁盘缓存 jcs