2013-03-17 180 views
-1

當我在本地運行網站時,視頻將上傳到azure並獲得發佈網址。沒問題。然而,當我發佈網站,然後試圖從那裏上傳,我得到這個錯誤:無法上傳到Azure媒體服務 - 找不到文件

Server Error in '/' Application. --------------------------------------------------------------------------------

c:\V1.mp4 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: c:\V1.mp4 

Source Error: 


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 



[FileNotFoundException: c:\V1.mp4] 
    Microsoft.WindowsAzure.MediaServices.Client.AssetFileData.UploadAsync(String path, BlobTransferClient blobTransferClient, ILocator locator, CancellationToken token) +499 
    Microsoft.WindowsAzure.MediaServices.Client.<>c__DisplayClass1c.<UploadAsync>b__14(Task`1 t) +347 
    System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke() +80 
    System.Threading.Tasks.Task.Execute() +49 

[AggregateException: One or more errors occurred.] 
    System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +3548265 
    System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +10487717 
    System.Threading.Tasks.Task.Wait() +10 
    Microsoft.WindowsAzure.MediaServices.Client.AssetFileData.Upload(String path) +90 
    UploadTest.Upload.UploadVideoButton_Click(Object sender, EventArgs e) +101 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553594 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103 
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724`enter code here` 

Upload.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Upload.aspx.cs" Inherits="UploadTest.Upload" %> 
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> 
    <asp:Button ID="UploadVideoButton" runat="server" Text="Upload The Video" OnClick="UploadVideoButton_Click" /> 
</asp:Content> 

Upload.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Microsoft.WindowsAzure.MediaServices.Client; 

namespace UploadTest 
{ 
    public partial class Upload : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void UploadVideoButton_Click(object sender, EventArgs e) 
     { 
      CloudMediaContext context = new CloudMediaContext("<accountname>", "<accountkey>"); 
      var asset = context.Assets.Create("V1.mp4", AssetCreationOptions.None); 
      var file = asset.AssetFiles.Create("V1.mp4"); 
      file.Upload(@"c:\V1.mp4"); 
     } 
    } 
} 
+1

您確定這不僅僅是服務器的C:\驅動器上不存在文件V1.mp4嗎?這就是FileNotFound異常會提示的內容...... – 2013-07-04 20:36:55

回答

-1

我想你應該用這個來上傳文件上傳流

public void UploadFileToAzure(Stream stream, string fileName, string contentType, 
    EContextType contextType) { 
    if (stream == null) 
     throw new ArgumentNullException("stream"); 

    if (fileName == null) 
     throw new ArgumentNullException("fileName"); 

    CloudBlobContainer blobContainer = null; 

    switch (contextType) 
    { 
     case EContextType.CloudStorage: 
      blobContainer = AzureBlobUtil.InitializeBlob(Settings.AzureBlobStorageFileStorage, Settings.GetAzureDataConnectionString); 
      break; 
     default: 
      blobContainer = AzureBlobUtil.InitializeBlob(Settings.AzureBlobStorageDocument, Settings.GetAzureDataConnectionString); 
      break; 
    } 

    var blob = blobContainer.GetBlockBlobReference(fileName); 
    blob.UploadFromStream(stream); 

    blob.Metadata["FileName"] = fileName; 
    blob.Metadata["IsArchived"] = false.ToString(); 
    blob.SetMetadata(); 
    // Set the properties 
    blob.Properties.ContentType = contentType; 

    blob.SetProperties(); 
} 
相關問題