ASP.NET缓存启动值

时间:2014-09-17 14:08:48

标签: asp.net-mvc caching

我将应用程序从C#WebForms转换为MVC。

应用程序使用Web服务从集中位置获取设置。这些是您通常在Web.Config中找到的设置,但公司的愿望是将这些值存储在所有应用程序的集中位置。

目前,只要您申请应用程序设置,它就会检查HttpContext.Cache以查看您是否已经检索过设置。如果你还没有,它会调用Web服务,并在HttpContext.Cache中存储设置(100多个基本上是键/值的对象)。因此,获取应用程序设置的调用只发生一次。

我应该考虑另一种方法吗?我认为设置应该只是一个REST服务调用,您传递密钥并获取一个值(当前服务是* .ashx,由于其他原因,这对于异常处理来说真的不太理想)。但显然这会导致更多的Web请求。这里的最佳做法是什么?当前的方法是否正常,我应该让代码在MVC应用程序中保持相同的工作?

1 个答案:

答案 0 :(得分:0)

最好在一次调用中加载所有资源:

  • 更少的HTTP请求对性能更好。 Http请求可以具有大约50ms的等待时间,因此将所有值逐个获得50×100 = 5000ms =>所花费更长的时间。 5秒
  • 如果外部Web服务出现故障,那么您的应用程序仍然有效,因为您已经下载并缓存了所有值

我将保留当前的解决方案,如果它可以工作并专注于新事物,而不是重写工作代码。