Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 要在.NETMVC网站上生成的50k静态html页面-如何在连续部署中工作?_Asp.net Mvc_Asp.net Mvc 3_Caching_Continuous Integration_Continuous Deployment - Fatal编程技术网

Asp.net mvc 要在.NETMVC网站上生成的50k静态html页面-如何在连续部署中工作?

Asp.net mvc 要在.NETMVC网站上生成的50k静态html页面-如何在连续部署中工作?,asp.net-mvc,asp.net-mvc-3,caching,continuous-integration,continuous-deployment,Asp.net Mvc,Asp.net Mvc 3,Caching,Continuous Integration,Continuous Deployment,情况是这样的 我们的网站有大约50000个“详细信息”页面,每个页面由来自我们数据库和API的大量数据块组成。目前,这些都是动态的,但数据只需要每天更改,如果需要的话。我们已经启用了输出缓存来加快速度 我们每天直接从Git部署多次到Appharbor。如果我错了,请纠正我,但我认为每次这样做都会丢失缓存。因此,输出缓存并没有做到它应该做的一切。除此之外,我更希望内容从一开始就被缓存,而不是当第一个用户点击每个页面时 现在,如果不是因为持续部署问题,我建议在编译期间生成静态html文件以获得最大性

情况是这样的

  • 我们的网站有大约50000个“详细信息”页面,每个页面由来自我们数据库和API的大量数据块组成。目前,这些都是动态的,但数据只需要每天更改,如果需要的话。我们已经启用了输出缓存来加快速度

  • 我们每天直接从Git部署多次到Appharbor。如果我错了,请纠正我,但我认为每次这样做都会丢失缓存。因此,输出缓存并没有做到它应该做的一切。除此之外,我更希望内容从一开始就被缓存,而不是当第一个用户点击每个页面时

  • 现在,如果不是因为持续部署问题,我建议在编译期间生成静态html文件以获得最大性能。但我觉得每天反复进行这个过程并不是正确的解决方案

    我们应该考虑什么样的缓存策略


    附带问题:如果我们生成50k静态html文件,您会将它们以文件夹结构的形式排列在磁盘上,还是将它们存储在数据库中,或者存储在内存中,或者做什么?

    为什么不使用App Fabric Cache?(我不知道是否可以通过app harbor获得)

    或者,您应该考虑实现自己的OutputCache提供程序,并将结果保存在ravendb或文件系统中:

    这样,您可以确保在重新启动应用程序时不会清除缓存


    编辑:app fabric不可用,但您可以将memcache与此提供商一起使用:

    当然,缓存应该尽可能透明。你说你已经启用了输出缓存,但是你没有提到你在什么级别输出缓存、ASP.NETMVC/IIS/动态内容压缩?PS考虑如何将静态HTML存储在(单输入的)数据库(有限制的I/O)会影响你的情况吗?第一个问题:你是否真的有性能问题?我只是在探索各种选择。@centralscru,我在评论中并没有暗示解决方案。在OP的最后一句话中,您考虑将(输出)文件缓存到数据库中。我反对这种反模式的做法。