2017-09-04 1 views
0

Ich benutze Azure Media-Service mit asp.net C# -Anwendung, um Medienclips aus Assets zu konkatuieren und einen neuen Job dafür zu erstellen.Anfrage RequestEntityTooLarge Ausnahme

Wenn ich 10 oder weniger verketten, dann Clips in einzelne Clip zusammenfügen (Ich erstelle Highlights aus einem Feed auf azurblauen mit verschiedenen Punkten von 1 Minute Dauer.) Es funktioniert gut und ich bekomme einen perfekten Clips nach dem Zusammenführen von ihnen.

Wenn ich die Nr. Erhöhen. von Clips zu mehr als 10, bekomme ich die Ausnahme (RequestEntityTooLarge) auf die job.submit() -Methode. Unten ist mein Code.

public string LaunchJobs_OneJobPerInputAsset_OneTaskPerfConfig(CloudMediaContext _context, IMediaProcessor processor, List<IAsset> selectedassets, string jobname, int jobpriority, string taskname, string outputassetname, List<ClipConfig> configuration, AssetCreationOptions myAssetCreationOptions, TaskOptions myTaskOptions, string storageaccountname = "") 
    { 
     string assetJobId = ""; 
     string tasknameloc = ""; 
     int count = 0; 
     outputAssetsList = new List<IAsset>(); 
     // a job per asset, one task per config 
     foreach (IAsset asset in selectedassets) 
     { 
      string jobnameloc = jobname.Replace(Constants.NameconvInputasset, asset.Name); 
      IJob myJob = _context.Jobs.Create(jobnameloc, jobpriority); 

      _contextGlobal = _context; 

      foreach (var config in configuration) 
      { 
       if (config.PublishUrl.Contains(asset.Locators.SingleOrDefault().Path)) 
       { 
        tasknameloc = taskname.Replace(Constants.NameconvInputasset, asset.Name).Replace(Constants.NameconvAMEpreset, config.Configuration); 
        ITask myTask = myJob.Tasks.AddNew(
          tasknameloc, 
          processor, 
          config.Configuration, 
          myTaskOptions); 

        myTask.InputAssets.Add(asset); 

        // Add an output asset to contain the results of the task 
        string outputassetnameloc = outputassetname.Replace(Constants.NameconvInputasset, asset.Name).Replace(Constants.NameconvAMEpreset, config.Configuration); 
        outputassetnameloc = outputassetnameloc + '_' + count; 

        if (storageaccountname == "") 
        { 
         myTask.OutputAssets.AddNew(outputassetnameloc, asset.StorageAccountName, myAssetCreationOptions); // let's use the same storage account than the input asset 
        } 
        else 
        { 
         myTask.OutputAssets.AddNew(outputassetnameloc, storageaccountname, myAssetCreationOptions); 
        } 

        outputAsssetDetailforConcatenate.Add(new ClipConfig { Name = outputassetnameloc, StartTime = config.StartTime, Duration = config.Duration }); 
        count++; 
       } 
       else 
       { 
        continue; 
       } 
      } 

      // Submit the job and wait until it is completed. 
      bool Error = false; 
      try 
      { 
       myJob.StateChanged += new EventHandler<JobStateChangedEventArgs>(JobStateChanged); 
       myJob.Submit();// I am getting exception in this line if the no. of clips are greater then 10. 
       myJob.GetExecutionProgressTask(CancellationToken.None); 
       outputAssetsList.AddRange(myJob.OutputMediaAssets); 

       // Call function to update status in session 
       SetStatusValueInSession("Clip generation job has submitted."); 

       assetJobId = myJob.Id; 
      } 

      catch (Exception ex) 
      { 
       // Add useful information to the exception 
       Error = true; 
      } 

      if (Error) 
      { 
       assetJobId = "There is error in job process."; 
      } 
     } 

     return assetJobId; 
    } 

Gibt es eine Grenze zu verketten nur 10 Clips oder es gibt eine Einstellung, um die Nr. Zu erhöhen. von Clips in Azure Media Service?

Antwort

0

Es ist möglich, dass Ihre XML-Nutzdaten zu groß werden. Können Sie mehr Details über die Payload Ihrer XML-Datei mit den XML-Einstellungen "config.Configuration" teilen und auch, wenn Sie den Datenverkehr mit Fiddler2 erfassen und an unser Team senden können, um diese weiter zu untersuchen.

Verwandte Themen