c# - 如何允许 .NET Core Web 应用访问网络驱动器?
问题描述
我正在实现一个 .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)
...
我尝试在应用程序池 -> 高级设置 -> 身份下使用所有不同的身份,但没有任何效果。
我从公司的基础架构团队那里听到,对此网络驱动器的授权是在用户级别授予的,因此不可能只授予我的 Web 服务器的计算机帐户访问驱动器的权限(如果我没有使用正确的术语,请道歉在这里 - 不是网络人)。
这几天我一直在尝试解决这个问题,但没有任何运气。任何帮助将不胜感激。
TL;博士:
我有一个接收 HTTP 请求的 .NET Core Web 应用程序,当它接收时,它应该读取和写入网络驱动器中存在的文件。但是,抛出 System.UnauthorizedAccessException,阻止我的应用程序访问网络驱动器及其内容。
更新:
不确定这是否有意义,但我在想的是,我不能允许访问我的网络驱动器来分组 IIS_IUSRS(应用程序池用户组),因为它是托管我的应用程序的机器中的一个本地组。在这种情况下,也许我需要将该应用程序池配置为作为在我的网络驱动器中具有读/写权限的特定域用户运行。这甚至可能吗?如果是这样,我该如何做到这一点?
解决方案
推荐阅读
- powershell - 如何编写 Powershell 逻辑以从包含不同字符的行中提取特定字段
- node.js - 如何使用mongoDb获取字符串中关键字的出现次数
- javascript - 带有嵌套 td 子项的嵌套表,没有 Json 的标头
- python - Python。函数内部名称未定义错误
- java - 无法使用 Spring 反应式将消息作为字符串发送 - Webclient
- javascript - 如何在javascript中删除数组内的空对象
- android - 设置后如何删除 Image 组件的 tintColor ?
- node.js - (this.internalValue || []).findIndex 不是在 v-select 上启用多选时的函数
- php - 用Hebew,英文和字符验证图像路径的正则表达式
- kubernetes - kubernetes:如何从附加的 pod 中分离