我正在以编程方式克隆一个 git repo,编译源代码并在 R2 2008 Windows 服务器上的 IIS 中创建一个新站点。
配置站点后,我需要为新的 IIS AppPool Identity 帐户设置权限;我正在尝试使用FileSystemAccessRule
:
// Set the Permissions
var dSiteRoot = new DirectoryInfo(cSiteRoot);
var oACL = dSiteRoot.GetAccessControl();
var cUser = "IIS APPPOOL\\" + cAppPoolName;
oACL.AddAccessRule(
new FileSystemAccessRule(
cUser,
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit,
PropagationFlags.InheritOnly,
AccessControlType.Allow
)
);
dSiteRoot.SetAccessControl(
oACL
);
FileSystemAccessRule
使用以下消息创建新实例时会引发异常:
部分或全部身份参考无法翻译。
我想知道用户是否尚未创建;刚刚通过 . 创建并提交了 AppPool 和站点ServerManager
。 因此,我尝试引用另一个现有且活动的 IIS AppPool 用户。那也失败了。 编辑:我一定没有正确测试过这个 - 请参阅下面的答案
我确实想知道是否需要在字符串前面加上机器名称。我试图从 中添加 MachineName,System.Environment.MachineName
但这也失败了,并出现了同样的错误。
如何使用 C# 引用 IIS AppPool 用户来设置文件夹的权限?