2010-04-13 49 views
0

我有一个在Windows Server 2003服务器上运行的ASP.NET Web应用程序。ASP.NET授予对本地资源的访问权

有一种表单可以读取和写入数据到应用程序目录中的xml文件。

我总是授予NETWORK SERVICE用户完全控制我的应用程序文件夹,以便它可以读取和写入xml文件。

我把应用程序放在另一个Windows Server 2003服务器上,并且执行了上面的相同步骤,但是我在读取和写入xml的表单上收到了一个Access拒绝异常。

我做了一些搜索,发现如果你授予用户ASPNET完全控制它的工作目录,我做到了这一点,它工作得很好。

我的问题是:什么是授予完全控制权限NETWORK SERVICEASPNET用户之间的区别?

和导致此问题的两台服务器之间有什么区别?

感谢

回答

1

在所有情况下,您需要授予应用程序池的用户帐户相应的访问权限。应用程序池是在IIS6中引入的。在IIS6之前,.NET应用程序在machine.config文件中配置的用户帐户下运行,以便在那里查找以确定需要访问的用户。

网络服务默认分配给应用程序池。这听起来像是某人在其中一台服务器上设置了不同的设置。

1

理想情况下,您不应该使用任一帐户。

您应该创建一个低权限帐户,该帐户只能访问您拥有的每个Web应用程序所需的资源。将新帐户添加到IIS_WPG用户组。然后为每个应用程序创建一个应用程序池,并将其设置为以专门为其创建的用户身份运行。

请参阅this article(TechNet)了解如何更改应用程序池的标识。

我描述的配置现在是Server 2008 R2/Win 7中的默认配置(source)。

不幸的是,由于有人更改了第二台服务器上的默认配置,因此我们无法告诉您这两个帐户之间的区别是什么。

您需要做什么(或让IT部门这样做)是比较每个帐户在本地计算机上的权限。这将是乏味的。但是,如果您可以运行PowerShell,则可以使用this article编写脚本来列出每个帐户的权限并进行比较。

祝你好运,找到差异。

相关问题