2012-11-19 151 views
3

使用InstallShield 2012 Professional安装ASP.NET网站以及在网络服务帐户的安全上下文中运行的自定义应用程序池。当我测试网站时,遇到权限问题(文件权限),网站失败,并显示“错误:访问被拒绝”消息。Installshield文件夹权限不起作用

使用InstallShield,我将权限设置为每个文件以读取用户“Authenticated Users”。我通过导航到“应用程序数据”中设置的InstallShield ISM文件中的权限 - >“文件和文件夹”

  • 选择“目标计算机上的文件夹”,每个文件夹
  • 在右键单击每个文件夹中的“目标计算机上的文件夹“
  • 选择上下文菜单中的‘属性’
  • 点击按钮‘权限’
  • 添加条目‘名称(S):’部分用户的‘身份验证的用户’,和域为空白(选择”阅读&执行“,”列出文件夹内容“,”阅读“)

...然后对每个文件夹,然后对每个文件重复执行此操作。

一旦我测试,我发现我有这个问题。如果我导航到服务器上安装的实际文件并进行审阅,它们显示正确,但无法正常运行。事实上,我 - 作为一个身份验证用户 - 没有权限浏览文件夹结构,但因为我是管理员,所以我可以调整权限并进入。如果我手动重置这些权限的每个文件(和相关文件夹)该网站的功能正常。这意味着应用程序池设置,文件副本和网络服务帐户都运行正常,并且问题严格与IIS试图访问的文件的权限相关。

有没有人有这个问题,并克服它?如果是这样,怎么样? (我宁愿避免使用InstallScript来设置权限。)

回答

5

说明:

当考虑“常规信息”区域中的设置,特别是“锁定权限”属性时,InstallShield中文件级权限设置的行为将有所不同。选择“传统Windows Installer处理”时,我从未成功添加明确的权限。我注意到这样做时,文件夹上的所有继承权限将消失。此外,尽管看起来权限是在Windows中设置的,但它们表现得好像没有设置。手动操作测试会显示它们没有正确设置。

将“锁定权限”属性设置为“自定义InstallShield处理”时,我能够添加权限并保持所有继承的权限不变。有了这个,我能够将所需的权限应用到“应用程序数据” - >“文件和文件夹”区域中的根安装目录,并且因为我选择了“自定义InstallShield处理”,所以我可以选中复选框“应用这些对子对象的权限“位于文件夹属性的权限区域的高级区域中。

步骤,以完成和解决我的问题:

InstallShield中(ISM文件)...

  • 导航到“常规信息”(左侧窗格)
  • 设置锁定的权限为“自定义的InstallShield处理”
  • 导航到“应用程序数据”
  • 右键单击根文件夹中的程序要安装
  • 单击“属性”
  • 点击按钮“权限”
  • 右键单击屏幕的上半部分在标有白盒区“名称(S)”
  • 选择上下文菜单项‘新建’
  • 删除域用户离开这一领域的空白
  • 新增用户‘认证用户’
  • 选择复选框以较低的区域(‘阅读&执行’, “列出文件夹目录”,“读”)
  • 点击按钮“高级”
  • 点击“确定”按钮
  • 检查复选框“子对象应用这些权限” 10单击“确定”按钮
  • 点击“确定”按钮

重新编译安装程序并安装。现在工作。