使用 InstallShield 2012 Professional 安装 ASP.NET 网站,以及在网络服务帐户的安全上下文中运行的自定义应用程序池。当我测试网站时,我遇到了权限问题(文件权限),网站失败并显示消息“错误:访问被拒绝。”。
使用 InstallShield,我为每个文件设置了对用户“Authenticated Users”的读取权限。我通过导航到“应用程序数据”->“文件和文件夹”在 InstallShield ISM 文件中设置权限
- 选择“目标计算机的文件夹”中的每个文件夹
- 右键单击“目标计算机的文件夹”中的每个文件夹
- 选择上下文菜单“属性”
- 点击按钮“权限”
- 在用户“Authenticated Users”的“Name(s):”部分添加条目,域为空白(选择“Read & Execute”、“List Folder Contents”、“Read”)
...然后对每个文件夹,然后对每个文件一遍又一遍地执行此操作。
一旦我测试,我发现我有问题。如果我导航到服务器上安装的实际文件并查看,它们看起来是正确的,但不能正常运行。事实上,我 - 作为经过身份验证的用户 - 没有导航文件夹结构的权限,但因为我是管理员,所以我可以调整权限并进入。如果我手动重置每个文件(和相关文件夹)的这些权限网站正常运行。这意味着应用程序池设置、文件复制和网络服务帐户都正常运行,并且问题与 IIS 试图访问的文件的权限严格相关。
有没有人遇到过这个问题,并克服了它?如果是这样,怎么做?(我宁愿避免使用 InstallScript 来设置权限。)