1

Azure Media Service に問題があります。ファイルを Azure Media Service にアップロードして mp4 としてエンコードすることに成功しましたが、これはビジュアル スタジオの localhost でのみ機能します。次のコードを Azure 仮想マシン、Windows Datacenter 2012 エディションにデプロイすると、ファイルはアップロードされますが、エンコード ジョブは作成されません

どんな助けでも大歓迎です!

これは、ジョブを作成するために使用するコードです。

                // Declare a new job.
                job= _context.Jobs.Create("New Job");

                // Get a media processor reference, and pass to it the name of the 
                // processor to use for the specific task.
                IMediaProcessor processor = GetLatestMediaProcessorByName("Windows Azure Media Encoder");

            // Create a task with the encoding details, using a string preset.
            ITask task = job.Tasks.AddNew("LSVEncodingTask_" + v.CompanyId + "_user" + v.UserId,
                processor,
                "H264 Broadband 1080p",
                TaskOptions.ProtectedConfiguration);

            // Specify the input asset to be encoded.
            task.InputAssets.Add(asset);

            // Add an output asset to contain the results of the job. 
            // This output is specified as AssetCreationOptions.None, which 
            // means the output asset is not encrypted. 
            task.OutputAssets.AddNew("output asset",
                AssetCreationOptions.None);

            // Use the following event handler to check job progress.  
            job.StateChanged += new
                EventHandler<JobStateChangedEventArgs>(StateChanged);

            // Launch the job.
            job.Submit();

            // Check job execution and wait for job to finish. 
            Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None);

編集:

掘り下げて(ロギング...)、スタックトレースを見つけました:

System.Security.Cryptography.CryptographicException: Access is denied.

   at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags)
   at Microsoft.WindowsAzure.MediaServices.Client.EncryptionUtils.SaveCertificateToStore(X509Certificate2 certToStore)
   at Microsoft.WindowsAzure.MediaServices.Client.ContentKeyBaseCollection.GetCertificateForProtectionKeyId(IMediaDataServiceContext dataContext, String protectionKeyId)
   at Microsoft.WindowsAzure.MediaServices.Client.JobData.ProtectTaskConfiguration(TaskData task, X509Certificate2& certToUse, IMediaDataServiceContext dataContext)
   at Microsoft.WindowsAzure.MediaServices.Client.JobData.InnerSubmit(IMediaDataServiceContext dataContext)
   at Microsoft.WindowsAzure.MediaServices.Client.JobData.SubmitAsync()
   at Microsoft.WindowsAzure.MediaServices.Client.JobData.Submit()
   at Livescreen.Domain.Implementation.AzureMediaManager.CreateEncodingJob(IAsset asset, String inputMediaFilePath, String outputFolder, Int32 videoId)
4

1 に答える 1

0

解決策はここで見つかりました:

IIS7 で実行している場合、アプリケーション プールのユーザー プロファイルをロードするように指定できます。これにより、アプリ プール アカウントのユーザーごとのストアにアクセスできるようになります。

解決:

ソリューション

于 2014-01-06T22:58:32.553 に答える