如何为 IIS 应用程序授予文件夹权限

How to Grant Folder Permissions to IIS Application

我正在尝试从 IIS 服务的 REST 端点写出一些文件。写入本地驱动器时一切正常。 但是,写入映射驱动器时,不会创建任何文件。

Case 1 - Local - Working

outputOrderFilesLocal = (req, res, next) => {
fs.writeFile('./receipts/filename.txt', data, (err) => {
    if (err) throw err
  })
}

Case 2 - Network - Broken

outputOrderFilesNetwork = (req, res, next) => {
fs.writeFile('Z:/receipts/filename.txt', data, (err) => {
    if (err) throw err
  })
}

我已将 Z: 驱动器上的文件夹权限设置为允许 NetworkService 并已将 IIS 中的应用程序池标识更改为 NetworkService

是否可以写入映射驱动器?是否需要设置其他权限或配置才能使其正常工作?

Z 是在用户帐户级别定义的路径。它映射到特定的网络路径,但仅限于特定用户。 IIS 的帐户 运行 可能没有 Z 的定义。

而是使用 Z 的完整 UNC 路径:

outputOrderFilesNetwork = (req, res, next) => {
fs.writeFile('\\uncservername\uncserverpath\receipts\filename.txt', data, (err) => {
    if (err) throw err
  })
}

您还必须为帐户配置权限 运行 UNC 路径上的进程,OS 级权限,因为通常 IIS 帐户没有这些权限。