2013-03-17 139 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(); 
} 
相关问题