Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试在visual studio asp.net中的microsoft azure网站上创建文件夹时,出现错误:System.UnauthorizedAccessException_C#_Asp.net_Azure_Visual Studio 2012 - Fatal编程技术网

C# 尝试在visual studio asp.net中的microsoft azure网站上创建文件夹时,出现错误:System.UnauthorizedAccessException

C# 尝试在visual studio asp.net中的microsoft azure网站上创建文件夹时,出现错误:System.UnauthorizedAccessException,c#,asp.net,azure,visual-studio-2012,C#,Asp.net,Azure,Visual Studio 2012,我的电脑上只有4个用户,所有用户都可以完全控制目录中的所有内容,我在本地(调试)模式和azure中都会遇到此错误 im正在尝试创建一个文件夹,供用户上载其文件: if (!Directory.Exists("~/"+Session["user_id"]+"/")) { Directory.CreateDirectory("~/" + Session["user_id"] + "/"); } if (FileUpload1.HasFile) { FileUpload1.Posted

我的电脑上只有4个用户,所有用户都可以完全控制目录中的所有内容,我在本地(调试)模式和azure中都会遇到此错误

im正在尝试创建一个文件夹,供用户上载其文件:

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上工作,尽管“microsoft azure网站”我假设您指的是azure应用程序服务(以前称为azure网站)

文件夹的完整路径是什么?在Azure应用程序服务中,您的web应用程序在沙箱中运行,您只能对“D:\home”或临时文件夹“D:\local\temp”下的子文件夹进行写入访问

更新:


我猜是Directory.Exists无法解析您的路径,而Server.MapPath将您的路径视为相对路径。我建议您使用绝对路径并从应用程序设置中读取它,以便在部署时可以在Azure中将应用程序设置更新为正确的路径

 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);
 }
当前给出了这个错误

其他信息: 用户id变量为101,因此路径完全正确。
路径不存在,因为出于某种原因,
目录.CreateDirectory
不会创建它们(文件夹),即使我添加了对文件夹的IIS IURS完全访问权限(我知道,因为我正在运行调试模式,并且在本地进行了检查)。

~/
不是有效的系统路径我在教程中看到有人这样做,虽然它是有效的,但现在这里是完整路径C:\Users\žan\Documents\visual studio 2015\Projects\Upload\u aspx\Upload\u aspx\ContentC:\Users\žan\Documents\visual studio 2015\Projects\Upload\u aspx\Content是我电脑上的完整路径,我希望它在内容文件夹中创建一个文件夹,名称将以用户名称命名,我试图通过添加新的用户组,在“安全”选项卡中为asp.net提供对地图的访问权限,但我能找到的唯一接近它的东西是一些IIS、进程、idk,如果这对azure网站有帮助的话,这正是我理想需要的。即使在添加iis并授予其完全权限后,也不会在本地更改任何内容。如果您在本地iis服务器上运行,请尝试授予对目标文件夹“iis_IURS”的完全访问权限,或更新应用池标识,在我的家用电脑上登录username/password.Im,当我尝试授予IIS IURS对该文件夹的完全访问权限时,没有发生任何更改,我只是再次这样做,在本地没有发生任何新的情况,我应该注意,我现在这样写我的路径:Directory.CreateDirectory(“~/Content/”+Session[“user_id”]+“/”;你能打开windows资源管理器看看是否创建了这些文件夹吗?是的,正如我所说,它不会创建路径/映射,我不知道为什么,但路径是正确的,但是如果我自己手动创建路径,它就可以上传到其中(显然,这对我来说不起作用,因为我试图创建一个每个人都可以上传文件的网站,这是一种项目,不需要很高效或很好,只是工作,我需要对地图进行正确排序(每个注册用户都有自己的内容)。我猜是目录。Exists不会解析您的路径,而Server.MapPath会将您的路径视为相对路径。我建议您使用绝对路径并从应用程序设置中读取它,以便在部署时可以在Azure中将应用程序设置更新为正确的路径