做了一个小的应用,服务器根据客户端的URL请求,生成一个EXCEL文件,然后客户端打开这个远程的EXCEL文件.
问题是有的时候访问打开EXCEL文件会很慢(这种情况一般发生在很久没有请求后的第一次请求), 要等半分钟左右才有结果,一旦打开之后,速度就会很快,因为是内网,所以正常时间1S不到.工作流程:
IE----URL------>IIS
IIS------------>生成EXCEL文件-----返回URL------>IE
IE启动本地的EXCEL.EXE, 把URL做为参数, 这样打开远程的EXCEL文件.
我分析了一下原因:
1. 服务端没有发生什么变动,应该没有预编译的操作.(不知是否正确?)
2. IIS的设置,比如recycle working process, 以及working process idle, 从我的理解,woring process idle会有影响,默认值是20分钟. 一但20分钟内没有请求,IIS会把这个website的进程关了,等下一个请求来的时候,再重新打开,这应该会耽误些时间.但是我把这个功能禁掉了,仍然有这种等待的情况发生,不知为什么?请高手们帮我分析分析..

解决方案 »

  1.   

    好像.net的都是第一次运行很慢,呵呵
      

  2.   

    是在IE里直接打开的.其实是个JAVA的APPLET,就是打开本地的EXCEL.EXE 把URL当做参数.客户那有什么原因呢?我这边也重现过这个问题.不过不是很容易重现.
      

  3.   

    我也有合LZ 同样的问题啊 ,来求救。页面上也没有很多的图片,主页是用几个frame 合起的。大概过一段时间重新登陆的话 速度 会相当慢, 我的是在局域网内。同学说设置客户端的COOKIE , 但是这个有什么作用呢
      

  4.   

    第一次要编译吧,之后就快了,.NET是这样的.
      

  5.   

    很多人没仔细看我的问题,我请求的网页没有内容,只是redirect到一个excel文件上.这几乎不花时间,而且是隔一段时间不访问后第一次访问会慢.而且也没有什么文件过期,要重新编译的过程
      

  6.   

    如果是WEB,就不要把所有数据都放在一个table里显示出来,
    这样整个TABLE加载完了才会显示。。
    比如先把top部分放TABLE里显示出来,这样就感觉快很多了
      

  7.   

    为什么你一口咬定不是缓存和编译的问题呢?我觉得恰好是这个问题redirect到一个excel文件上,缓存和编译是整个程序的,不单只那一页吧。
      

  8.   

    客户端内存太小,第一次需要加载office组件,第二次打开就会快的多另外是否编译上的问题,我倒是觉得可能性不大
      

  9.   

    应该是编译的原因。asp.net的网站是用第一个用户的第一个请求触发网站程序的起动。所以刚启动的网站程序要经过编译处理再响应用户请求。如果长时间不访问网站,网站程序会自己停下来。就像你不设计退出,网站也要自动将那些长时间不请求的连接断开。实际上页面写什么内容都会等这么一会儿的,要是想快,你可以先放一个静态的html,再在这个页上放一个你真正要请求的那个页的链接,这样也许会好一些。
      

  10.   

    第一次运行的时候,是要把iis下的虚拟空间下的bin里要运行的dll 动态编译,
    然后copy到
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files这个时间比较慢。
      

  11.   

    To jaykon:
    我一共就一个页面,你说要用什么缓存呢?而且文件又没有变化,何来的重新编译?To mystudy2000:
    你说的长时间不访问网站,网站自已会停下来,这是在IIS里哪里配置的?我已经取消了IIS里关于进程IDLE的功能,不知道还有什么别的地方有相关的配置?