从服务器删除文件:拒绝访问该路径

时间:2012-06-28 21:33:36

标签: asp.net security iis-7.5

我用我的代码隐藏来调用这个函数:
DeleteFile(Server.MapPath(“/”)+“sitemap_index.xml”)

Public Shared Function DeleteFile(ByVal filename As String) As Boolean
'deletes file from server
Dim bResult As Boolean = False
Try
    If File.Exists(filename) Then
        'delete file
        File.Delete(filename)
        bResult = True
    Else
        bResult = True
    End If
Catch ex As Exception

End Try
Return bResult
End Function

然后我收到错误:拒绝访问路径'E:\ zz \ wwwroot \ sitemap_index.xml'。

在我自己的其他网站中,这种逻辑很有效,但是在当前的网站上并没有。我检查了我的Windows Server 2008 R2 Standard上的安全设置。

在此处查看我的Windows服务器上wwwroot文件夹中的设置:

  

系统:完全控制
  网络服务:读+写+读&执行+列表文件夹内容
  IIS_IUSRS:读取+写入

正如其他帖子所建议的,我一直在阅读,我尝试添加其他用户组,但我的服务器上没有ASPNET服务/组。

以管理员身份登录(表单身份验证)时,我可以单击按钮重新创建sitemap_index.xml和sitemaps.xml
用户应该能够删除并添加图像到wwwroot \ images \ uploads文件夹

我应该赋予哪些组权限以允许上述内容可以安全?

1 个答案:

答案 0 :(得分:6)

检查应用程序池用户的访问权限。

找到您网站正在使用的应用程序池,右键单击它并选择Advanced Settings...。池正在使用的用户名列在Identity旁边。

请注意,如果标识名为“ApplicationPoolIdentity”,则应检查用户IIS AppPool\<Name of the app pool here> Info about ApplicationPoolIdentity的访问权限


看来Modify权限为required to delete files。尝试授予NetworkService Modify权限。