3

動画を YouTube API にアップロードしようとしています... 動画ファイルが 4 MB 未満であれば正常に動作しています..

以下は私のコードです..問題はリクエストの長さに関連していると思いますか?!

更新:私が得ているエラーは、「すべてのバイトが書き込まれるまでストリームを閉じることができません」です。

コードのアップロード

YouTubeRequestSettings settings = new YouTubeRequestSettings("App NAME", "DeveloperKEY", "UserName", "Password");
        YouTubeRequest request = new YouTubeRequest(settings);

        request.Settings.Timeout = 9999999;

        Video newVideo = new Video();

        newVideo.Title = "Movie size 3 MB";
        newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
        newVideo.Keywords = "cars, funny";
        newVideo.Description = "My description";
        newVideo.YouTubeEntry.Private = false;
        newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag", YouTubeNameTable.DeveloperTagSchema));

        string videoPath = "c:\\1.flv";

        newVideo.YouTubeEntry.MediaSource = new MediaFileSource(videoPath, GetContentType(videoPath));
        Video createdVideo = request.Upload(newVideo);

        litMessage.Text = "Video " + newVideo.Title + " uploaded.";

Web.config

<httpRuntime
    executionTimeout="240"
    maxRequestLength="40960"
    requestLengthDiskThreshold="80"
    useFullyQualifiedRedirectUrl="false"
    minFreeThreads="8"
    minLocalRequestFreeThreads="4"
    appRequestQueueLimit="5000"
    enableKernelOutputCache="true"
    enableVersionHeader="true"
    requireRootedSaveAsPath="true"
    enable="true"
    shutdownTimeout="90"
    delayNotificationTimeout="5"
    waitChangeNotification="0"
    maxWaitChangeNotification="0"
    enableHeaderChecking="true"
    sendCacheControlHeader="true"
    apartmentThreading="false" />
4

3 に答える 3

0

リクエストの長さではないと思います。私の知る限り、アップロードされたファイルを受信するときにそれを使用します。どこかにタイムアウトがあるようです。コードと Web.Config の HTTPRuntime 部分の両方でタイムアウト値を上げて、それが機能するかどうかを確認します。

于 2011-02-23T19:27:05.093 に答える
0

この行

maxRequestLength="4096"

あなたのweb.configでは、アプリに4MBのアップロードのみを許可するように指示しています。それを、必要な/必要な制限まで上げてください。

特にサードパーティのサイトへの投稿を扱う場合、これは単純すぎる解決策かもしれないと感じています。

于 2011-02-23T19:28:27.823 に答える
0

これを試して:

settings.Timeout = 10000000;
settings.Maximum = 2000000000;

アップロード時間を超えるか、コンテンツの長さ (送信されたバイト数) を超えると、Web 要求は失敗します。

于 2011-07-06T12:29:20.917 に答える