一些静态内容加载非常缓慢

3
我正在尝试将一个MVC 2 web应用程序安装到我们的生产服务器上。该应用程序已在多个测试服务器上运行和测试,但是在生产环境中,一些静态内容(特别是JavaScript文件)加载非常缓慢(有时需要60秒以上)。有趣的是,并非所有静态内容都是如此——在典型的页面加载周期中,除了一个JS文件之外,所有其他文件都将成功传输到客户端,但是其中一个文件会“卡住”,有时甚至无法下载。
另一个奇怪的现象是,如果我直接访问这个静态内容,它会立即加载。
我已经调查了处理程序映射,并将IIS配置与我们的测试环境进行了比较,发现两者都很相似。这是什么原因造成的?

1
你是否将所有静态内容存储在单独的文件夹中?你可以添加一个 routes.IgnoreRoute("StaticFolder/{*pathInfo}"); 路由处理程序来防止MVC引擎尝试解析这些路由到操作。 - Laurence
是的,我的静态内容是分开的。有趣的是,这可能是一个网络路由问题:当我从家里访问该网站时,我没有遇到任何提供静态内容的延迟。 - bjanaszek
我曾经遇到过类似的问题,后来发现是我们的网络架构之间存在时间不匹配的问题。 - Laurence
有趣的是,它只下载JS文件的部分内容。但是下载速度非常慢。 - bjanaszek
劳伦斯,你是如何发现时间不匹配的? - bjanaszek
当时是我的经理,他在运行数据包跟踪器并发现我们丢失了很多数据包。修复不匹配后,我们的数据包成功率提高了,页面加载时间增加了3秒钟。 - Laurence
1个回答

0
尝试在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" />


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接