簡體   English   中英

C#Azure MediaServices上載文件引發錯誤

[英]C# Azure MediaServices uploading file throws an error

我正在使用MVC4測試項目嘗試將文件上傳到Azure媒體服務。

我可以創建我的CloudMediaContext罰款。 我還可以創建一個IAsset,並在其中創建一個IAssetFile。 但是,當我嘗試向其中上傳新文件時,出現以下異常:

Server Error in '/' Application.

Could not load file or assembly 'Microsoft.WindowsAzure.Storage, Version=3.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我不確定錯誤是否在於MVC4中,因為它無法從自己的目錄上傳文件? 根據錯誤,我缺少一些引用或程序集,但我添加的唯一東西是Azure.MediaServices的NuGet程序包,該程序包安裝了Azure MediaServices .NET SDK ...

這是上傳的HomeController代碼:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
    string localStorage = Server.MapPath("~/UploadedMedia");
    string uploadedFileName = file.FileName;
    if (!Directory.Exists(localStorage))
        Directory.CreateDirectory(localStorage);
    file.SaveAs(string.Format(@"{1}\{0}", file.FileName, localStorage));
    _mediaServicesContext = new MediaServicesContext();
    _mediaServicesContext.UploadFile(string.Format(@"{1}\{0}", file.FileName, localStorage));

    return View(new UploadModel() { FileName = uploadedFileName, Post = true, Result = true });
}

這是我的MediaServices類(正在做的工作)

public class MediaServicesContext
{
    #region ATTRIBUTES
    private const string MEDIACONTEXTNAMEKEY = "MediaServiceAccountName";
    private const string MEDIACONTEXTPASSKEY = "MediaServiceAccountAccessKey";
    private const string MEDIASTORAGENAMEKEY = "StorageAccountName";
    private const string MEDIASTORAGEPASSKEY = "StorageAccountAccessKey";

    private readonly CloudMediaContext _mediaContext;
    #endregion

    #region CTORS
    public MediaServicesContext()
    {
        _mediaContext = new CloudMediaContext(accountName: ConfigurationManager.AppSettings[MEDIACONTEXTNAMEKEY],
                                                accountKey: ConfigurationManager.AppSettings[MEDIACONTEXTPASSKEY]);
    }
    #endregion

    #region PROPERTIES
    public CloudMediaContext MediaContext
    {
        get { return _mediaContext; }
    }
    #endregion

    #region METHODS
    public void UploadFile(string path)
    {
        // Create a .NET console app
        // Set the project properties to use the full .NET Framework (not Client Profile)
        // With NuGet Package Manager, install windowsazure.mediaservices
        // add: using Microsoft.WindowsAzure.MediaServices.Client;
        var uploadFilePath = path;
        var context = _mediaContext;
        var uploadAsset = context.Assets.Create(Path.GetFileNameWithoutExtension(uploadFilePath), AssetCreationOptions.None);
        var assetFile = uploadAsset.AssetFiles.Create(Path.GetFileName(uploadFilePath));
        assetFile.Upload(uploadFilePath);
    }
    #endregion
}

由於某種原因,以下解決了我的問題。

在NuGet PackageManager控制台中,鍵入以下內容:

PM> Install-Package WindowsAzure.Storage

這似乎已經更新了Microsoft.WindowsAzure.Storage依賴關系,並允許我的程序正常工作。 非常奇怪,微軟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM