0

我已将我的 asp.net Web 项目转换为云服务。当我在本地机器上编译它时,它工作正常。但是当我将它部署在 Windows Azure 上并以 *.cloudapp.net 运行时,它会显示以下错误。它不会上传或下载任何文件。任何帮助将不胜感激。谢谢!

错误: “/”应用程序中的“服务器错误”。

找不到文件“E:\approot\uploads\129517348374782571”。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileNotFoundException:找不到文件“E:\approot\uploads\129517348374782571”。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[FileNotFoundException: 找不到文件 'E:\approot\uploads\129517348374782571'。] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +12892807 System.IO.FileInfo.get_Length() +12550108 EsraSon2.CourseList。 gvPaths_SelectedIndexChanged(Object sender, EventArgs e) 在 C:\Users\canosum\documents\visual studio 2010\Projects\EsraSon2\EsraSon2\CourseList.aspx.cs:78 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean CauseValidation, String validationGroup) +1203 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691 `

上传代码:

 string temp = DateTime.Now.ToFileTime().ToString();
                FileUpload1.PostedFile.SaveAs(Server.MapPath("uploads") +"\\"+ temp);
                BLLFileUpload m_helper = new BLLFileUpload();
                DateTime date = DateTime.Now;
                m_helper.InsertUploadFiletoDB(temp, FileUpload1.FileName, date, 1, Convert.ToInt32(gvSemesters.SelectedRow.Cells[7].Text));

下载代码:

BLLFileUpload m_helper = new BLLFileUpload();

            string tempname = m_helper.getFileRealName(gvPaths.SelectedRow.Cells[2].Text);  
            string fName = Server.MapPath("uploads")+ "\\" + tempname;
            FileInfo fi = new FileInfo(fName);
            long sz = fi.Length;

            Response.ClearContent();
            Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", gvPaths.SelectedRow.Cells[3].Text));
            Response.AddHeader("Content-Length", sz.ToString("F0"));
            Response.TransmitFile(fName);
            Response.End();
4

1 回答 1

0

根据您运行的实例数量,由于有多个服务器,因此无法保证文件已上传到您尝试下载的同一台计算机。

您需要保留的所有内容(例如上传的文件)都应保存到 blob 存储中。

这是一个示例(对于大文件)

http://social.msdn.microsoft.com/Forums/en/windowsazure/thread/687b2252-8b5e-473d-b522-ebb6b02693b7

于 2011-06-06T19:52:08.690 回答