【问题标题】:How do you allow IIS to access a symlink folder?如何允许 IIS 访问符号链接文件夹?
【发布时间】:2022-08-24 06:17:06
【问题描述】:

我有两个网络服务器,在 C:\\inetpub\\logs\\LogFiles 中的每个网络服务器上我创建了一个指向其他服务器日志文件文件夹的符号链接,所以基本上我可以登录到其中一个网络服务器并查看两台服务器上的日志在一个地方。这完美地工作。

我正在构建一个网页以通过网页提供日志文件,代码只需转到 C:\\inetpub\\logs\\LogFiles 目录并列出每个子文件夹中的文件,即 W3SVC1 (本地文件夹)和webserver2-w3svc1(远程日志文件夹)。

对于本地文件夹,它可以正常工作,但是在尝试在符号链接文件夹上调用 Directory.GetFiles 时出现“拒绝访问”错误。我怀疑这是某种权限错误,但我尝试将符号链接文件夹完全权限授予 \"everyone\",但我仍然遇到相同的错误。

这是否与以下事实有关:当我创建符号链接时,我必须输入 webserver2 的用户名和密码,而 IIS 在尝试访问文件夹时无法访问/使用这些凭据?

我能做些什么让 IIS 访问这个符号链接文件夹的内容吗?

  • 在 IIS 上,您的代码在应用程序池标识下的会话 0 中执行。因此,与在用户会话中运行相同的代码有太多不同。诸如映射驱动器和符号链接文件夹之类的东西实际上只是为了方便而存在,当它们不与 IIS 一起使用时,您不需要那种方便。

标签: iis permissions symlink


【解决方案1】:

我认为您不需要使用符号链接,您可以在 IIS 中创建一个虚拟目录映射到该目录,只需将其映射到目标路径即可。在 IIS 中,右键单击网站并选择添加虚拟目录。

如需更多信息,请参阅此official document

【讨论】:

    【解决方案2】:

    经过大量实验,唯一的方法如下:

    1. 在计算机上创建一个新用户。
    2. 在 IIS 中以这个新用户的身份运行 AppPool,而不是默认的 IUSR 帐户。
    3. 将您要共享的文件夹授予此用户并与新用户“共享”此文件夹。

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多