我在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'。
答案 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/
文件夹设置可写权限,或者如果有的话,请使用“管理”面板。