嗨我似乎在asp.net上传图像时遇到问题.当我尝试上传图片时出现此错误:
访问路径'D:\ Projects IDE\Visual Studio\MyWork\Websites\Forum\Images\avatar\userAvatars\aleczandru'被拒绝.
我已经设置的应用程序池Identoty到NETWORKSERVICE安藤还增加了网络服务帐户添加到图像全permision文件夹,但我仍然得到同样的错误.
这是我的代码:
private void addImageToApp()
{
string path = "~/Images/avatar/userAvatars/" + User.Identity.Name;
createPath(path);
if( Directory.Exists(HostingEnvironment.MapPath(path)))
{
//try {
UploadImage.SaveAs(HostingEnvironment.MapPath(path));
// MultiViewIndex.ActiveViewIndex = 0;
//}catch(Exception ex)
//{
// AvatarDetails.Text = ex.Message;
//}
}
}
private void createPath(string path)
{
string activeDir = HostingEnvironment.MapPath("~/Images/avatar/userAvatars");
if( !Directory.Exists(Server.MapPath(path)) )
{
string newPath = Path.Combine(activeDir, User.Identity.Name);
Directory.CreateDirectory(newPath);
}
}
Run Code Online (Sandbox Code Playgroud)
我还能做些什么来解决这个问题?
编辑
嗨,此时我对以下用户有完全的权限控制:
我需要将任何配置设置为IIS才能使其正常工作吗?
编辑
我最近几天搞乱了SQL-SERVER以便完成这项工作所以我可能错过了配置的东西我所理解的NETWORK SERVICE存储在SQL-SERVER master.db数据库中.我似乎有两个网络服务登录可能这是问题吗?我记得当我第一次检查它时,我现在没有,我有两个:

编辑
这是我添加到文件夹中的permisions打印:

编辑:完成错误

堆栈跟踪:

在方法中,CreatePath您将创建文件夹'D:\ Projects IDE\Visual Studio\MyWork\Websites\Forum\Images\avatar\userAvatars\aleczandru'.
然后,您尝试使用文件名'D:\ Projects IDE\Visual Studio\MyWork\Websites\Forum\Images\avatar\userAvatars\aleczandru'保存上传的图像.
您不能拥有具有相同名称的文件夹和文件.如果您尝试这样做,操作系统将告诉您访问被拒绝.

我想您要在文件夹中创建文件名aleczandru,或者您想将文件保存为文件aleczandru.png夹中的文件userAvatars.
假设您UploadImage是FileUpload控件,则可以使用上载文件的原始文件名将文件保存到用户的文件夹中.
UploadImage.SaveAs(HostingEnvironment.MapPath(
Path.Combine(path, UploadImage.FileName)));
Run Code Online (Sandbox Code Playgroud)