快速检查远程服务器上是否存在图像的方法

时间:2010-06-24 18:54:05

标签: asp.net cdn

我有一个网站从CDN加载图像。我要求检查CDN上是否存在100张图像。

我正在使用此代码来实现此目的:

Protected Function RemoteImageExists(ByVal Path As String) As Boolean

    Dim httpRequest As HttpWebRequest = CType(WebRequest.Create(Path), HttpWebRequest)

    httpRequest.Method = "HEAD"

    Try

        Dim httpResponse As HttpWebResponse = CType(httpRequest.GetResponse, HttpWebResponse)

    Catch ex As Exception
        Return False 'Undesirable flow, but seems unavoidable :(
    End Try

    Return True

End Function

这仍然很慢,许多请求超时。有更快的方法吗?

1 个答案:

答案 0 :(得分:0)

几点建议:

  1. 如果CDN可以提供动态内容,那么在CDN上托管提供图像列表的服务将是性能方面的最佳方法。

  2. 图片是否在同一目录中?如果是,请配置CDN以显示可用文件列表,并查询此列表。解析HTML是一件很丑陋的事情,但由于这些HTML文件的格式有一天不会意外地改变,所以它可以接受。

  3. 如果前两个是不可能的,请根据具体情况使用Parallel扩展名(可能会使事情变得更快或更慢)。

  4. 例外情况很慢。摆脱它们。直接使用套接字可能会有所帮助(即使它很难看)。

  5. 顺便说一句,找到瓶颈可能有助于找到更好的解决方案。例如,如果瓶颈是处理器功率,并行扩展可能有所帮助,但如果是带宽或CDN的性能,它只会减慢一切。请注意,瓶颈可能是本地计算机,本地连接,整体连接或CDN。