Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 检查远程服务器上是否存在映像的快速方法_Asp.net_Cdn - Fatal编程技术网

Asp.net 检查远程服务器上是否存在映像的快速方法

Asp.net 检查远程服务器上是否存在映像的快速方法,asp.net,cdn,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" Tr

我有一个从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
这仍然非常缓慢,许多请求超时。有没有更快的方法可以做到这一点?

几点建议:

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

  • 图像是否在同一目录中?如果是,请配置CDN以显示可用文件列表,然后查询此列表。解析HTML是一件难看的事情,但是由于这些HTML文件的格式在某一天不会意外地改变,所以它是可以接受的

  • 如果前两个是不可能的,根据具体情况使用并行扩展(它可能使事情变得更快或更慢)

  • 例外是缓慢的。摆脱他们。直接使用套接字可能会有所帮助(即使很难看)


  • 顺便说一下,找到瓶颈可能有助于找到更好的解决方案。例如,如果瓶颈是处理器能力,并行扩展可能会有所帮助,但如果是带宽或CDN性能,它只会降低速度。请注意,瓶颈可能是本地计算机、本地连接、整体连接或CDN。

    我有一个愚蠢的问题:您使用的CDN是否允许提供动态内容?(如果是,更快的方法是在CDN上托管服务,返回可用映像的列表)。您需要多久运行一次此检查?什么时候/哪里叫它?您可以检查300/400级别的响应等,以使其更智能。我刚刚意识到有些问题-设置断点表明每个请求都需要几分钟!有些事情搞砸了!我是通过管理员来做这件事的,所以速度不是一个很大的因素-但是页面的当前速率低得离谱,现在似乎是出于其他原因。找到了一个解决方案-CDN(Rackspace)有一个API我可以用来获取文件列表。谢谢你的建议!