好吧,我只能说我不太清楚自己在这里做什么。如果我把事情弄得比实际更复杂,请见谅。
我有一个网站,已经在 IIS6 上设置了一段时间,运行良好。我拿了完全相同的网站,并尝试在 Windows Server 2008 Enterprise 32 位上进行设置。
以下是我遵循的步骤:
- 从服务器获取包含该网站的 zip 文件。
- 将其解压到 inetpub/website/version。
- 它给出了配置文件需要迁移的错误,所以我授予 IIS_IUSRS 对主文件夹的读取权限并运行迁移命令。
现在网站可以加载了,但我遇到了两个问题:
- 我无法编辑网站文件夹中的任何文件。我打开它,编辑它,当我尝试保存时,它显示“访问被拒绝”。但是,如果我将文件从文件夹移动到我的桌面,我可以在那里编辑它并将其移回,没有任何问题。我以管理员身份登录,管理员组对网站中的每个文件都有完全权限。
当我尝试使用该网站时,会出现一些设置页面,用于编辑一些配置文件。我在尝试使用这些页面时总是出现权限错误(网站的其他部分功能正常):
加载配置文件时发生错误:拒绝访问路径“C:\inetpub\website\version\XXXXX.tmp”。(C:\inetpub\website\version\web.config)
我检查权限,发现 /config 文件夹设置为只读,因此我取消了该选项。但似乎什么都没改变。
我在 IIS 论坛上看到,这些权限问题是由于我将其直接解压到 inetpub 文件夹,因此它没有继承正确的权限。因此,我尝试将其解压到“我的文档”,然后按照建议将其移动到 inetpub,但这似乎没有任何作用。
权限当前设置如下:
- 网站(只读,管理员组具有完全控制权,用户组和 IIS_IUSRS 具有读取和执行权)
- 版本 (同上)
- /config(与上面相同,但 IIS_IUSRS 还具有修改和写入功能)
- web.config(同上)
- 版本 (同上)
- wwwroot
那么有人知道我还要做什么才能摆脱这个错误吗?
答案1
这听起来像是用户访问控制问题。
启用 UAC 后,即使以本地管理员身份登录,您也不是管理员组的成员。只有“以管理员身份运行”时,您才“属于”该组。因此,如果您“以管理员身份”启动记事本,您将能够毫无问题地编辑文件。因此,答案是关闭 UAC 或授予您的用户帐户对文件的明确修改权限。是的,这真的很烦人。
这样就解决了您编辑配置文件的问题,但听起来您还想让应用程序编辑文件。这听起来有点危险,但如果您可以控制谁可以访问该应用程序,那么这可能是可以接受的。
最好的方法是将 Web 应用放在其自己的应用程序池中,而不是默认应用程序池中。然后将应用程序池上的身份设置为特定用户帐户,而不是默认网络服务帐户。然后授予该帐户对特定文件和/或文件夹所需的权限。
答案2
由于 UAC,在系统文件夹中进行更改时,您会收到“拒绝访问”信息。在 Windows Server 2008 中,即使您是计算机上管理员组的成员,当您尝试在 inetpub 或 system32 等文件夹中进行任何更改时,UAC 也会启动并验证您是否确认更改。
强烈建议不要更改 UAC,但您可以检查控制面板 -> 用户帐户 -> 用户帐户下的设置。选择帐户并单击更改用户帐户控制设置
。HTH