【问题标题】:Some Static Content Loads Very Slowly一些静态内容加载非常缓慢
【发布时间】:2012-10-21 06:44:39
【问题描述】:

我正在尝试将 MVC 2 Web 应用程序安装到我们的生产服务器。此应用程序已在多个测试服务器上运行和测试,但在生产中,一些静态内容(最显着的是 JavaScript 文件)加载非常非常缓慢(有时 60 多秒)。然而,有趣的是,并非所有静态内容都是如此——在典型的页面加载周期中,除了一个 JS 文件之外的所有 JS 文件都将成功传输到客户端,但有一个会“粘住”,有时永远不会下载。

同样奇怪的是,如果我直接进入静态内容,它会立即加载。

我研究了处理程序映射,并将 IIS 配置与我们的测试环境进行了比较,一切都相似。这是什么原因造成的?

【问题讨论】:

  • 您是否将所有静态内容保存在单独的文件夹中?您可以添加 routes.IgnoreRoute("StaticFolder/{*pathInfo}"); 路由处理程序以防止 MVC 引擎尝试将这些路由解析为操作。
  • 是的,我的静态内容是分开的。有趣的是,这可能是网络路由问题:从我家访问网站时,我在提供静态内容时没有遇到任何延迟。
  • 我曾经遇到过类似的问题,原因是我们的某些网络架构之间的时间不匹配。
  • 有趣的是,它正在部分下载 JS 文件的内容。它真的非常非常慢。
  • 劳伦斯,你是怎么发现时间不匹配的?

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


【解决方案1】:

尝试在 webconfig 文件中为静态内容设置此项,它将压缩文件并导致页面快速呈现

 <system.webServer>

<httpProtocol allowKeepAlive="true"/>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
  <dynamicTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="message/*" enabled="true"/>
    <add mimeType="application/javascript" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="message/*" enabled="true"/>
    <add mimeType="application/javascript" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    相关资源
    最近更新 更多