偶在做个winform自动更新的。
发现用WebRequest时第一次取文件响应总要10来秒。
且第一次是取的一个xml文件只有4K大
-----------------------------------------------------------------
主要代码如下:
Stopwatch sw = new Stopwatch();
sw.Start();
HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create("网络路径");
 WebResponse wResponse = wRequest.GetResponse();
   sw.Stop();
   MessageBox.Show("查找文件所花时间"+ (sw.ElapsedMilliseconds).ToString()); 过了第一个后面的就快了。换了web服务器还是一样的结果。高手支招?

解决方案 »

  1.   

    第一次运行程序要编译的,或者你的时间并不是花在了响应上,花在了编译上也说不定,在HttpWebRequest前后定个时,一目了然
      

  2.   

    致楼上的,这是winform程序不是asp.net的程序,懂吗?
      

  3.   

    WINFORM是这样的!WINFORM打开和WEB服务有关的东西,好像都是这样的,正常!
    第一次打开连接远程速度慢,打开连接后系统有将连接缓存,所以后面打开就快了!
      

  4.   

    WINFORM是这样的!WINFORM打开和WEB服务有关的东西,好像都是这样的,正常!
    第一次打开连接远程速度慢,打开连接后系统有将连接缓存,所以后面打开就快了!
    ------------------------应该是这样的
      

  5.   

    WINFORM是这样的!WINFORM打开和WEB服务有关的东西,好像都是这样的,正常!
    第一次打开连接远程速度慢,打开连接后系统有将连接缓存,所以后面打开就快了!
    ------------------------应该是这样的同意
      

  6.   

    WINFORM是这样的!WINFORM打开和WEB服务有关的东西,好像都是这样的,正常! 
    第一次打开连接远程速度慢,打开连接后系统有将连接缓存,所以后面打开就快了! 
    ------------------------应该是这样的 
    -------------------------------------------------------------------
    不同意,按此理解,打开各个不同网址的网页都需要有这样的连接缓存罗?,可结论是系统“只进行了一次这样的连接缓存”,并没有“多次连接缓存”
      

  7.   

    5楼说的对,.Net的所有对象第一次运行的时候才用JIT(即时编译器)编译成二进制代码,这里要花很多时间的。
      

  8.   

    5楼说的对,.Net的所有对象第一次运行的时候才用JIT(即时编译器)编译成二进制代码,这里要花很多时间的。
    --------------------------------------------------------
    这个更离谱了,我作过测试,对象生成及以后都快的,就是首次读网络那会要等20秒.
      

  9.   

    不好意思。
    各位看官辛苦了。原来少设了个
      this.wRequest = (HttpWebRequest)WebRequest.Create(FileUrl);
       this.wRequest.AllowAutoRedirect = true;
      

  10.   

    解决方案
    http://blog.csdn.net/rrrfff/archive/2011/01/31/6170653.aspx