当我在本地运行网站时,视频会上传到azure,我会收到一个发布网址。没问题。但是,当我发布网站然后尝试从那里上传时,我收到此错误:
>'/'应用程序中的服务器错误。 -------------------------------------------------- ------------------------------
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");
}
}
}
答案 0 :(得分:-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();
}