读取IIS上的写入权限

时间:2012-06-14 21:41:42

标签: asp.net asp.net-mvc-3 visual-studio-2010 iis-7

我在uploads目录中创建了一个目录Content,在uploads目录中我创建了一个用户帐户创建目录。此设置在开发设置中正常工作,但是当我在本地IIS上发布网站时,我收到拒绝访问错误。

  

拒绝访问路径'C:\ inetpub \ wwwroot \ Content \ uploads / d1bed3b7-f9e1-486a-953a-37abc7b99dad'。

我有一个共享托管环境,我想问的问题是,我能否在共享托管环境中设置权限?

有哪些替代方案?

修改

这里是用于为用户创建目录的代码(tnx到@Marko)

string UserGUID = Guid.NewGuid().ToString();
string path = HostingEnvironment.MapPath(@"~/Content/uploads");
Directory.CreateDirectory(path+"/" + UserGUID);

修改

更改代码后,错误消息已改进

  

拒绝访问路径'C:\ inetpub \ wwwroot \ Content \ uploads \ ab569312-c487-4a08-bf49-99f7c69303f6'。

1 个答案:

答案 0 :(得分:2)

路径出现问题,您的斜线错误/

C:\inetpub\wwwroot\Content\uploads--------->/<----------d1bed3b7-f9e1-486a-953a-37abc7b99dad'

只要\uploads\路径具有可写权限,您在该文件夹中创建的任何文件夹/文件都应继承父级的权限。

修改

我不能100%确定它为何在cassini中运行,但是将代码更改为此(它使用Path.Combine)而不是手动添加斜杠(这实际上是错误的斜杠)。

string UserGUID = Guid.NewGuid().ToString();
string path = HostingEnvironment.MapPath(@"~/Content/uploads");
string userPath = Path.Combine(path, UserGuid);
Directory.CreateDirectory(userPath);

如果所有这些都失败,请与您的托管服务提供商联系,为/uploads/文件夹设置可写权限,或者如果有的话,请使用“管理”面板。