webrequest超时下载大图像文件

时间:2015-12-21 18:51:03

标签: c# asp.net httpwebrequest timeoutexception

尝试通过WebDAM(第三方内容管理系统)API下载大型视频文件时,Webrequest超时。以下是用于获取视频的基本代码。

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):请求超时。]

1 个答案:

答案 0 :(得分:0)

尝试在Web.config文件中添加httpRuntime超时,如下所示......

start /D {working_directory} D:\Python27\python.exe {file_path}

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