改进ASP.NET网站的TTFB

时间:2016-01-28 18:58:05

标签: c# asp.net asp.net-mvc

enter image description here试图找出我的网站速度如此之慢的原因,它是一个使用bootstrap主题的asp.net空模板。不使用任何数据库或实体框架,所以我不知道为什么一个简单的asp.net网站可能这么慢。

似乎是TTFB(时间到第一个字节)达到了15-20秒。有时网站速度很快,但经常在一段时间后网站会变慢,我的理解是IIS正在暂停应用程序池。

我面临的挑战是使用Host4Asp和GoDaddy托管,两者都有这个问题,我无法访问IIS来配置它,因为它是一个共享托管。我用PHP创建了相同的网站,每次都会立即加载。

我已经在webconfig中实现了缓存,并在我的所有控制器操作上使用了CacheOutput属性。

<system.webServer>
  <staticContent>
    <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
  </staticContent>
  <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true" />
  <httpProtocol>
    <customHeaders>
      <add name="Cache-Control" value="public" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

所以问题是,如果您对IIS的访问权限有限并且您正在使用共享主机,那么如何改进asp.net网站的TTFB性能。当然,asp.net希望每个开发人员都拥有高性能的VPS或专用服务器。

我已经在GitHub上制作了一个包含完整解决方案代码的回购,如果有帮助的话。 https://github.com/devfunkd/zenwire

2 个答案:

答案 0 :(得分:2)

托管服务通常会让您的网站进入睡眠模式,如果没有人访问一段时间。这可能与它有关,因为您注意到减速只是偶然的,并且在本地机器上有所改进。

答案 1 :(得分:0)

  1. 使用AWS Cloudfront或Azure CDN等CDN
  2. 使用一些优秀的DNS提供商,如Amazon Route 53 DNS