这在某种程度上可能是一个异端问题。我们有大型网站,其中很多页面仍在 ASP 中。大多数情况下,它们并不是真正动态的,但它们包括(通过 SSI 或 Server.Execute)定期重新生成的 HTML 块。它可能看起来像一个穷人的缓存,但它运行得非常好,我猜微软已经针对这种情况对 IIS 进行了大量优化。
现在,我们希望能够在 ASP.NET / ASP.NET MVC 中实现类似的功能。我们将定期生成 HTML 片段(通常每小时左右),我们希望将其包含到 ASP.NET / ASP.NET MVC 包装器中,提供主站点 chrome、一些导航,以及可能与片段相关的一些其他动态内容。所以这是一种混合,但关键是生成的 HTML 会定期由外部进程重新生成,主要是出于性能原因和保持我们的服务器场同步。
我能找到的 ASP.NET 中最接近的东西是:
<% Response.WriteFile("GeneratedSnippet.inc"); %>
这似乎相当于
<% Server.Execute "GeneratedSnippet.inc" %>
在 ASP 中。它可能更快,因为没有要执行的代码。但它的效率可能不如:
<!--#include file="GeneratedSnippet.inc" -->
正如我上面提到的,我怀疑 IIS 多年来一直在优化以处理 SSI 以及 ASP 包括在内。另一方面, Response.WriteFile 很可能真的会读取文件并将其吐出。有人会深入了解两个或一些经验吗?
可能是我太担心了,但是我们大部分流量大的内容仍然在 ASP 上运行,并且使用了大量的 SSI,因此即使 Response.WriteFile 的一点差异也可能会累积并产生明显的影响。