iis 如何允许.NET Core Web应用程序访问网络驱动器?

h7appiyu  于 2023-06-06  发布在  .NET
关注(0)|答案(2)|浏览(125)

我正在实现一个.NET Core(3.1)Web API,它从网络驱动器读取文件,在其中进行字符串操作,并将它们写入不同的文件夹(在同一个网络驱动器内)。
目标是通过HTTP请求触发该过程。
为了实现这一点,我创建了我的web API项目,部署到IIS 10(win10),web应用程序运行得很好。
然而,我总是遇到权限问题时,试图访问网络驱动器:

System.UnauthorizedAccessException: Access to the path '\\my\network\drive' is denied.
   at System.IO.FileSystem.CreateDirectory(String fullPath, Byte[] securityDescriptor)
   at System.IO.Directory.CreateDirectory(String path)
   ...

我已经尝试在Application Pool -> Advances Settings -> Identity下使用所有不同的身份,但没有任何效果。
我从我公司的基础设施团队那里听到的是,对这个网络驱动器的授权是在用户级别授予的,所以不可能只给予我的Web服务器的机器帐户访问驱动器的权限(如果我在这里没有使用适当的术语,请道歉-不是一个网络家伙)。
这几天我一直在努力解决这个问题,没有任何运气。任何帮助将非常感激。

TL;DR:

我有一个.NET Core Web应用程序,它接收HTTP请求,当它这样做时,它应该读取和写入存在于网络驱动器中的文件。但是,引发了System.UnauthorizedAccessException,阻止了应用程序访问网络驱动器及其内容。

更新:

不知道这是否有意义,但我想的是,我不能允许IIS_IUSRS组(应用程序池用户组)访问我的网络驱动器,因为它是承载我的应用程序的计算机中的本地组。在这种情况下,也许我需要的是配置该应用程序池,使其作为在我的网络驱动器中具有读/写权限的特定域用户运行。这可能吗如果是这样,我如何才能做到这一点?

rkue9o1l

rkue9o1l1#

这是因为您的驱动器已设置访问权限,应用程序无法访问它。
右键单击您的驱动器目录,然后单击“属性”:

点击“编辑”:

我建议给所有“组或用户名”完全控制权限:

velaa5lx

velaa5lx2#

请确保您使用的帐户有权访问路径以运行应用程序池。并确保“加载用户配置文件”设置为True!

相关问题