【发布时间】:2012-12-03 21:05:20
【问题描述】:
您好,我在 asp.net 中上传图片时似乎遇到了问题。当我尝试上传图片时出现此错误:
拒绝访问路径“D:\Projects IDE\Visual Studio\MyWork\Websites\Forum\Images\avatar\userAvatars\aleczandru”。
我已将应用程序池 Identoty 设置为 NETWORKSERVICE,并且还以完全权限将 NETWORK SERVICE 帐户添加到 Images 文件夹,但我仍然遇到同样的错误。
这是我的代码:
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);
}
}
我还能做些什么来解决这个问题?
编辑
您好,目前我对以下用户拥有完全的权限控制:
- 经过身份验证的用户
- IUSR
- 系统
- 网络服务
- IIS_WPG
- 管理员
- 用户
我是否需要为 IIS 设置任何配置才能使其正常工作?
编辑
在过去的几天里,为了完成这项工作,我一直在使用 SQL-SERVER,所以我可能错误地配置了一些我理解的网络服务存储在 SQL-SERVER master.db 数据库中的东西。我似乎是有两个网络服务登录可能是这个问题吗?我记得当我第一次检查它时我没有现在我有两个:
编辑
这是我添加到文件夹的权限打印:
编辑:完全错误
堆栈跟踪:
【问题讨论】:
-
您能否提供更多详细信息:您是在开发网络服务器还是 IIS 上运行它。您使用的是什么版本的 .net / IIS?是创建了路径但没有上传文件还是没有创建路径?
-
我正在使用 .NET 4 和 IIS 6.1。路径是使用用户的用户名创建的。这部分有效。无效的部分是当我尝试保存文件时,我得到访问被拒绝错误我将忽略整个错误和堆栈跟踪。如果我从 Visual Studio 运行它,而不仅仅是从 IIS 运行,也会出现该错误