为ASP.NET网站改进TTFB

dev*_*nkd 5 c# asp.net asp.net-mvc

在此处输入图片说明试图弄清楚为什么我的网站这么慢,它是一个使用引导主题的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>
Run Code Online (Sandbox Code Playgroud)

因此,问题是当您对IIS的访问权限有限并且使用共享主机时,如何提高asp.net网站的TTFB,使其性能可比。当然,asp.net希望每个开发人员都拥有高性能的VPS或专用服务器。

如果有帮助,我已在GitHub上进行了存储库,其中包含完整的解决方案代码。 https://github.com/devfunkd/zenwire

tim*_*tim 2

如果一段时间内没有人访问,托管服务通常会将您的网站置于睡眠模式。这可能与此有关,因为您注意到速度下降只是偶尔,并且在您的本地计算机上有所改善。