2015-12-21 60 views
0

尝试通过WebDAM(第三方内容管理系统)API下载大型视频文件时发生网络请求超时。以下是用于获取视频的基本代码。网络请求超时下载大图像文件

public void StreamAsset(String AssetID, HttpResponse Response) 
    { 

      WebRequest request = request = WebRequest.Create(_api_url_v2 + "assets/" + AssetID + "/download"); 
      request.Timeout = 200000; 
      // add OAuth header 
      request.Headers.Add("Authorization", "Bearer " + _access_token); 

      // get response from WebDAM web service 
      WebResponse response = request.GetResponse(); 
      using (Stream file = response.GetResponseStream()) 
      { 
       Int32 bytesRead = 0; 
       Byte[] buffer = new Byte[524000]; 

       while ((bytesRead = file.Read(buffer, 0, buffer.Length)) > 0) 
       { 
        if (Response.IsClientConnected) 
         Response.OutputStream.Write(buffer, 0, bytesRead); 
        else 
         break; 
       } 
       file.Close(); 
      } 

     } 


    } 

有没有更有效的方法来写这段代码,或者我只需要插入超时属性。

我得到了相当标准的下面的错误。

堆栈跟踪: [HttpException(0x80004005的):请求超时]

回答

0

尝试增加在类似下面的Web.config文件中的httpRuntime超时...

<system.web> 
    <httpRuntime executionTimeout="n"/> 
</system.web> 

...其中n是您的请求在被ASP.NET自动关闭之前允许执行的秒数。