WebResource.axd和ScriptResource.axd加载速度非常慢

时间:2011-04-26 12:54:08

标签: c# asp.net iis scriptmanager

在正常情况下,两个.axd文件以正常速度加载到浏览器,即几百毫秒。通过查看chrome或其他调试工具中的瀑布图(网络图表),我可以看到它们与所有其他页面元素一起正常加载。

偶尔会出现两个文件需要大约一分钟才能加载的问题。以下是其他几点说明:

  • 页面上的所有其他元素以正常速度加载。
  • 一般每天发生一次或两次,持续几分钟。
  • 我可以同时在性能计数器上看到Requests Queued峰值。
  • 在此期间,CPU,内存和磁盘都保持正常。
  • 今天有几个小时的中断,需要重新启动应用程序才能解决。
  • 没有合并.axd文件或者像那样的任何形式。
  • 在网站范围内实施网址重写。 axd文件被排除在重写之外。
  • 为C#3.5构建的应用程序
  • IIS 7
  • 我正在使用ScriptManager的CDN版本,例如:

    <asp:scriptreference name="MicrosoftAjax.js" path="http://ajax.microsoft.com/ajax/3.5/MicrosoftAjax.js"></asp:scriptreference>

看起来其他人有类似的问题,但没有解决:

WebResource.axd and ScriptResource.axd weird behaviour

WebResource.axd & ScriptResource.axd loading takes more than 1 minute

问题:

任何想法如何弄清楚导致这两个文件偶尔加载的原因是什么?

此外,是否有任何变通办法,例如预构建.axd文件或其他东西..?

4 个答案:

答案 0 :(得分:1)

也许在本地托管http://ajax.microsoft.com/ajax/3.5/MicrosoftAjax.js有帮助吗?

答案 1 :(得分:1)

我有一些可能有帮助的建议。

  • 下载最新版本的Ajax Control Toolkit
  • 通过设置web.config

    在发布模式下运行它
    <deployment retail="true" ...>
    
  • 请勿从其他网站加载您的javascript,但请将其放在磁盘上并直接从服务器加载。

测试它们以确定问题是否正常。

答案 2 :(得分:1)

基本上,这些axd文件是处理程序,您可能已经意识到处理程序代码将由ASP.net引擎执行。这些处理程序只是发出一个js文件。

我在这里猜测的是,应用程序域或工作进程是回收。检查性能监视器并查看Application Restarts计数器以及Worker Process重新启动。

答案 3 :(得分:-1)

如果.axd文件是静态的并且没有更改,那么我认为保存它们并将它们作为js文件引用没有问题。