无法从 IIS 访问共享文件夹

无法从 IIS 访问共享文件夹

我需要从 IIS 访问另一台计算机上的文件夹。两台服务器都是 Windows 2008 SP2,它们位于 Amazon EC2 上的虚拟私有云中。它们通过私有 IP 相互访问 - 它们位于 WORKGROUP 中,而不是域中。

以管理员身份登录客户端时,我可以手动访问共享文件夹。但 IIS 出现“拒绝访问”提示。以下是我所做的:

  1. 设置文件共享 = ON
  2. 设置密码保护共享 = OFF
  3. 设置公共文件夹共享 = ON
  4. 共享文件夹
  5. 为共享添加了权限:所有人,完全控制
  6. 添加了共享的权限:网络服务、完全控制
  7. 验证 Windows 防火墙中是否已选中文件和打印机共享
  8. 开放 445 端口以接收来自本地来源的入站流量

我尝试将 <remote-machine-name>\NETWORK SERVICE 添加到共享,但它说无法识别该机器,我想这是有道理的。

正如我所说,从另一台计算机,我可以轻松通过我的用户帐户访问共享文件夹,但 IIS 被关闭了。文件服务器怎么知道区别呢?我认为,在每个人都拥有完全控制权并关闭密码保护共享的情况下,客户端用户帐户是什么就无关紧要了。

无论如何,如何解决?

更新:澄清一下,我并没有尝试直接通过 IIS 提供共享上的文件。而是从我的代码 (System.IO) 将文件写入共享。

答案1

IIS 的默认操作模式非常严格。IIS 不使用<computername>\NETWORK SERVICE。它使用<computername>\IUSR_<computername>,它是组的成员<computername>\Guests。如果您尝试在 IIS 服务器上访问的网页要求身份验证,它将尝试使用这些凭据进行身份验证。如果它访问的文件是可执行脚本,那么它将使用IWAM_<computername>。我不记得它的组成员身份了。

您在这里要做的事情在工作组中配置起来并不容易。您必须在远程计算机上设置一个帐户,其用户名和密码与 IIS 系统使用的用户名和密码相同。您可以使用脚本来确定 IIS 用户帐户的密码,但我不知道 IIS 是否会定期更改该密码,或者该脚本在较新版本中是否不起作用。

相关内容