我的电脑上只有4个用户,所有用户都可以完全控制目录上的所有内容,并且我在本地(调试)模式和天蓝色时都会收到此错误。
我正在尝试为用户创建文件夹以上传文件:
if (!Directory.Exists("~/"+Session["user_id"]+"/"))
{
Directory.CreateDirectory("~/" + Session["user_id"] + "/");
}
if (FileUpload1.HasFile)
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/" + Session["user_id"] + "/") + FileUpload1.FileName);
}
修复了什么
string mapa = (Path.Combine(HttpContext.Current.Server.MapPath("~/Content/" + Session["user_id"].ToString() + "/")));
if (!Directory.Exists(mapa))
{
Directory.CreateDirectory(mapa);
}
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Content/" + Session["user_id"].ToString() + "/") + FileUpload1.FileName);
这在本地工作,我仍在使用azurewebsites
答案 0 :(得分:0)
“microsoft azure website”我假设您参考Azure App Service(以前称为Azure网站)。
您的文件夹的完整路径是什么?在Azure App Service中,您的Web应用程序在沙箱中运行,您只能对“D:\ home”或临时文件夹“D:\ local \ Temp”下的子文件夹具有写入权限。
更新
我的猜测是Directory.Exists没有解析你的路径,而Server.MapPath将你的路径视为相对路径。我建议您使用绝对路径并从应用程序设置中读取它,以便在部署时可以将应用程序设置更新为Azure中的正确路径
答案 1 :(得分:-1)
此代码
if (!Directory.Exists("/Content/" + Session["user_id"] + "/"))
{
Directory.CreateDirectory("/Content/" + Session["user_id"] + "/");
}
if (FileUpload1.HasFile)
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("/Content/" + Session["user_id"] + "/") + FileUpload1.FileName);
}
目前提供此错误 http://i.imgur.com/vSXWJSs.png
其他信息:
用户标识变量为101,因此路径完全正确。
路径不存在,因为由于某种原因,Directory.CreateDirectory
没有创建它们(文件夹),即使我添加了IIS IURS对该文件夹的完全访问权限(我知道因为我正在运行调试模式,我在本地检查。)