我很难弄清楚如何为读取/写入文件到另一台服务器的IIS Web应用程序设置权限。我目前正在访问'\ Server \ Path \ to \ ReadWrite \'被拒绝。
通常情况下,我会指定IIS APPPOOL \ AppPoolName来授予权限,但它似乎没有从服务器B的上下文中找到。我也试过'Everyone',甚至看起来不起作用(不是那样)这就是我想要使用的。)
答案 0 :(得分:3)
这是一个选项: -
这是另一个可能有用的选项: -
答案 1 :(得分:1)
IIS 7.5及更高版本的版本创建在 ApplicationPoolIdentity 的保护下运行的虚拟应用程序池用户帐户。这对于该应用程序池是唯一的,因此不会与另一台服务器上的帐户相同。
您需要将相同的特定域用户帐户设置为对共享文件夹和应用程序池具有权限。专门为此任务创建一个新的域帐户。
然后,您可以通过转到相关应用程序池的“高级设置”,将此用户设置为应用程序池帐户,选择“身份”并选择使用自定义帐户。在此处输入相关的域帐户名和密码。
您还需要授予该域用户访问IIS和访问该文件夹的权限。因此,用户可能需要进入IIS_IUSRS组以及USERS。
也为共享文件夹授予相同的用户权限。
请注意,outbound TCP port limitations导致的并发SMB / UNC连接数存在限制。您可以增加更改某些注册表值的限制。如果您开始得到500个错误,请对最大TCP端口进行一些研究。
答案 2 :(得分:0)
我在同一个域中的两台服务器上遇到同样的问题,并且都使用Windows 2012服务器。服务器A上的Web服务想要通过UNC路径访问服务器B上的数据,如\\SERVER_B\C$\Users\Public\MyData
。
首先,我已授予服务器对服务器B上的数据“MyData”的完全访问权限。
当我尝试在ApplicationPoolIdentity
下运行的Web服务时,我无法访问。还可以使用其他内置帐户运行网络服务,例如NetworkService
和LocalSystem
。我无法访问。
然后我尝试了一个自定义帐户并授予了完全访问权限,但即使这样也没有成功。
最终,我通过服务器B上与MyData$
对应的共享C:\Users\Public\MyData
访问数据时获得了访问权限。
似乎使用C$
有一些限制。