Asp.net 通过处理程序访问生产中的文件;“拒绝访问”;
我有一个遗留的web应用程序,它有一个HTTPHandler,可以通过检查数据库中的权限来访问一组文件 在开发中,它工作正常 但在生产中,它只在本地主机中工作。每一台试图访问文件(并且应该读取该文件)的计算机都会抛出一个异常: 对路径“G:\Sites\Portal\Portals\0\attachments”的访问被拒绝 第行:Asp.net 通过处理程序访问生产中的文件;“拒绝访问”;,asp.net,iis-7,web-config,permission-denied,Asp.net,Iis 7,Web Config,Permission Denied,我有一个遗留的web应用程序,它有一个HTTPHandler,可以通过检查数据库中的权限来访问一组文件 在开发中,它工作正常 但在生产中,它只在本地主机中工作。每一台试图访问文件(并且应该读取该文件)的计算机都会抛出一个异常: 对路径“G:\Sites\Portal\Portals\0\attachments”的访问被拒绝 第行: Dim bufferArquivo As Byte() = IO.File.ReadAllBytes(request.PhysicalPath) 它拒绝访问文件所在
Dim bufferArquivo As Byte() = IO.File.ReadAllBytes(request.PhysicalPath)
它拒绝访问文件所在的文件夹,但我选中了,它对所有人都有完全权限
我没有使用模仿,所以我在想,如果可能的话。如果是,我如何实施
它发生在网站从IIS6迁移到II7之后。(适用于iis6,不适用于iis7)检查应用程序池为应用程序使用的用户。如果设置为ApplicationPoolIdentity,则需要查找用户ApplicationPoolIdentity映射到的对象
您还可以将标识设置为NetworkService,并为NetworkService授予该文件夹的读取权限。在多台服务器上100%为我工作。我不知道具体发生了什么,但在迁移到IIS7之前,
请求。PhysicalPath
正在返回完整的文件名路径(完整路径+文件名)。之后,它只返回包含该文件的文件夹(完整路径)。我必须在request.PhysicalPath中插入文件名才能作为nefore工作
Dim filename As String = request.Path.Substring(request.Path.LastIndexOf("/") + 1)
Dim bufferArquivo As Byte() = IO.File.ReadAllBytes(request.PhysicalPath + "\" + filename)
说将身份设置为“NetworkService”是指使用模拟?仍然不起作用,可能与HTTP处理程序注册有关?我可以问一下为什么否决吗?