使用.net库通过youtube api在youtube上上传更大尺寸的视频会出现错误请求已中止:请求已取消

时间:2013-04-02 13:09:53

标签: youtube-api

在youtube上传视频时,超过4 MB的大小会出现以下错误。

The request was aborted: The request was canceled.| at
System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean
aborting) at
System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState
closeState) at System.Net.ConnectStream.Dispose(Boolean disposing) at
System.IO.Stream.Close() at
Google.GData.Client.GDataGAuthRequest.CopyRequestData() at
Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter) at
Google.GData.Client.GDataGAuthRequest.Execute() at
Google.GData.Client.MediaService.EntrySend(Uri feedUri, AtomBase
baseEntry, GDataRequestType type, AsyncSendData data) at
Google.GData.Client.Service.Insert(Uri feedUri, AtomEntry newEntry,
AsyncSendData data) at Google.GData.Client.Service.Insert[TEntry](Uri
feedUri, TEntry entry) at
Google.GData.YouTube.YouTubeService.Upload(String userName,
YouTubeEntry entry) at Google.YouTube.YouTubeRequest.Upload(String
userName, Video v) at Google.YouTube.YouTubeRequest.Upload(Video v) at
upload.Button1_Click(Object sender, EventArgs e)

已经尝试了一些像

这样的解决方案
request.Settings.Timeout = 60 * 60 * 1000;

<httpRuntime executionTimeout="6000" maxRequestLength="100000" />

但同样的问题发生了。请帮我 代码如Follws: -

YouTubeRequest request = new YouTubeRequest(settings);
        //request.Settings.Maximum = 9999999;
        request.Settings.Timeout = 60 * 60 * 1000;          
        Video newVideo = new Video();

        newVideo.Title = TextBox1.Text;
        newVideo.Tags.Add(new MediaCategory("People", YouTubeNameTable.CategorySchema));
        newVideo.Keywords = "cars, funny";
        newVideo.Description = TextBox2.Text;
        newVideo.YouTubeEntry.Private = false;
        newVideo.YouTubeEntry.AccessControls.Add(new YtAccessControl("list", "denied"));
        newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag", YouTubeNameTable.DeveloperTagSchema));



        newVideo.YouTubeEntry.MediaSource = new MediaFileSource(f.ToString(), "video/x-flv");


        Video createdVideo = request.Upload(newVideo);

1 个答案:

答案 0 :(得分:3)

只需在代码中添加这三行,然后尝试

 YouTubeService service = new YouTubeService("Test", DEVELOPERKEY);
        ((GDataRequestFactory)request.Service.RequestFactory).Timeout = 9999999; 
        ((GDataRequestFactory)service.RequestFactory).KeepAlive = false;

如果问题解决,请将此标记为答案。