Windows 2008 服务器上 IIS 7 中的 ASP.net 用户帐户权限

Windows 2008 服务器上 IIS 7 中的 ASP.net 用户帐户权限

我在我的 ASP.net 应用程序中设置了一个全局错误处理程序,使用 Log4Net 和 RollingLogFileAppender,到目前为止它运行得相当好。

我正在将 Windows 2008 服务器上的 IIS 7 升级到中途,但无法使日志记录正常工作。我认为出现了错误,但 ASP.net 没有写入指定文件夹所需的权限。现在,我通常只需向 ASPNET 用户授予完全权限即可,但该用户帐户不再存在。另外,我也找不到“Everyone”用户组。我不想到处乱创建新用户帐户、设置模拟等等。有简单的解决方案吗?

答案1

在 IIS6 和 IIS7 中,ASP.NET 中与 ASPNET 用户等同的是应用程序池标识用户。默认情况下,在 IIS7 中为 NETWORK SERVICE,在 IIS 7.5+ 中为应用程序池标识。您可以授予该用户对磁盘的权限,这样它就可以正常工作了。

“更好”的方法是为每个应用程序池创建自定义用户并向他们分配磁盘权限,这样网站就彼此隔离,并且服务器上使用网络服务的其他应用程序无法访问您网站的内容。但是,您需要根据自己的情况做出判断。

发挥作用的另一个用户是您网站的匿名用户或经过身份验证的用户。这在您网站的身份验证 -> 匿名部分中定义。在 IIS7 中,我建议将其设置为使用应用程序池标识,只要每个池只有 1 个站点,或者只要应用程序池中的每个站点彼此高度信任。那么您只需要在磁盘上维护 1 个用户。

答案2

就我而言,授予权限NETWORK SERVICE是不够的。我IUSR还需要为用户添加权限IIS_IUSRS

答案3

我能够按照以下说明解决其中一个“访问被拒绝”错误(在 Windows Web Server 2008 + IIS 7 设置上):

  • 您的文件夹 - 右键单击​​ - 安全选项卡
  • 点击“高级”按钮
  • 在“权限”选项卡中单击“编辑...”按钮。这将为您提供另一个对话框,该对话框具有添加用户/组对象的功能。
  • 当单击“添加...”时,它将提供已知界面(在 Windows 早期版本中可用)来添加用户/组对象。
  • 找到网络服务并设置适当的权限即可完成。

我不确定这是否是正确的解决方法但对我来说它很有用。

我希望这对任何用户来说都很有用。

相关内容