Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 通过处理程序访问生产中的文件;“拒绝访问”;_Asp.net_Iis 7_Web Config_Permission Denied - Fatal编程技术网

Asp.net 通过处理程序访问生产中的文件;“拒绝访问”;

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) 它拒绝访问文件所在

我有一个遗留的web应用程序,它有一个HTTPHandler,可以通过检查数据库中的权限来访问一组文件

在开发中,它工作正常

但在生产中,它只在本地主机中工作。每一台试图访问文件(并且应该读取该文件)的计算机都会抛出一个异常:

对路径“G:\Sites\Portal\Portals\0\attachments”的访问被拒绝

第行:

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处理程序注册有关?我可以问一下为什么否决吗?