【发布时间】:2015-01-30 07:30:34
【问题描述】:
我在 .Net MVC 应用程序中创建了一个基本的拖放图像上传用户界面。我只是使用非常基本的代码将图像保存到服务器,这在本地工作,但是在我部署到 Azure 后,我收到一个 javascript 警报,弹出“内部服务器错误”,这很奇怪,因为我的代码中没有任何地方显示带有状态的警报。
这是我试过的代码:
(基本上取自 Phil Haack 的文章)
public ActionResult UploadPhoto(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var splitFileName = file.FileName.Split('.');
var type = splitFileName[splitFileName.Length - 1];
var fileName = User.Identity.Name;
var path = "/Content/Users/" + fileName + "." + type;
var pathToSave = Path.Combine(Server.MapPath("~/Content/Users"), fileName + "." + type);
file.SaveAs(pathToSave);
}
return Json("All files have been successfully stored.");
}
有些东西阻止了此上传在 Azure 上发生,有人有什么想法吗?
【问题讨论】:
-
如果我没记错的话,你遇到了一个未捕获的异常。您可以做的一件事是捕获异常并将堆栈跟踪返回给客户端,以查看导致错误的原因。
-
这是真的,但例外是由于上传图片,上传在本地运行良好,并且从 phil haack 的博客中删除 - 所以绝对已经过测试。所以...我希望有人知道需要更改哪些配置设置才能将图像上传到托管在 Azure 上的网站服务器
-
我猜,但我认为这与文件保存有关。可能是您在 Azure 中运行代码时无权访问该路径。顺便说一句,您是在 Azure 网站还是 Azure 云服务中部署代码?
-
您的日志对 500 错误有何看法?如果某处有 ACCESS_DENIED,我不会感到惊讶。文件 ACL 的上传位置是否正确?
-
这是 Azure 网站,我还没有通过并得到实际的错误,但我确信它是类似于访问被拒绝的东西。它位于 Web 应用程序根目录下名为“Content/UserImages”的文件夹中
标签: c# asp.net-mvc azure