小弟想做一个功能就是 根据数据库里的图片地址 来查看远程服务器上的图片是否存在!  注意是"远程服务器~"不是本机!比如说 我的站点是 www.xx.com 图片服务器地址是 image.xx.com不能用异常来判断~ 因为引发异常太慢了! 好几百万条的数据呢.
下面是在网上找的,实在太慢了!! 
    public bool Check1(string URL)
    {
        try
        {
            System.Net.WebRequest s = System.Net.WebRequest.Create(URL);
            s.Timeout = 10000;
            System.Net.WebResponse a = s.GetResponse();
            return true;
        }
        catch
        {
            return false;
        }
    }希望高手帮忙!! 100分献上!

解决方案 »

  1.   

    会报告404,403 之类的错误。try的代码一定要加的,遇到错误的域名,或者域名解析不了,一定会报错的。
      

  2.   

            /// <summary>
            /// 检查链接是否存在
            /// </summary>
            /// <param name="sURL"></param>
            /// <param name="AllowBadNum"></param>
            public bool UrlExist(string strURL)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
                request.Method = "HEAD";
                request.AllowAutoRedirect = false;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    response.Close();
                    return false;
                }
                else
                {
                    return true;
                }
            }
      

  3.   

    你可以在页面IMG标签里  试试  写个onerrer 属性,将它的值指定未另外一张图片。
    也就是当你要的图片没有时 显示 的 “暂无”图片~~~
      

  4.   

    操作超时 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Net.WebException: 操作超时源错误: 行 112:            HttpWebResponse response = (HttpWebResponse)request.GetResponse
      

  5.   

    用3楼的方法,再开多几个线程,如果不懂多线程,可以用BackgroundWorker代替
      

  6.   

    rail100 能给贴点代码吗 本人真的很菜
      

  7.   

    WebRequest wreq=WebRequest.Create(""); 
        HttpWebResponse wresp=(HttpWebResponse)wreq.GetResponse(); 
        Stream s=wresp.GetResponseStream();     
        System.Drawing.Image img; 
        img = System.Drawing.Image.FromStream(s);   
        img.Save("D:\\a.gif",ImageFormat.Gif);   MemoryStream ms=new MemoryStream(); 
        img.Save(ms,ImageFormat.Gif); 
        img.Dispose(); 
        Response.ClearContent(); 
        Response.ContentType="image/gif"; 
        Response.BinaryWrite(ms.ToArray());
    参考