我有一个在Windows Server 2003服务器上运行的ASP.NET Web应用程序。
有一个表单可以读取和写入应用程序目录中的xml文件。
我总是授予 NETWORK SERVICE 用户对我的应用程序文件夹的完全控制权,以便它可以读取和写入xml文件。
我将应用程序放在另一台Windows Server 2003服务器上并执行了相同的步骤,但我在读取和写入xml的表单上获得了Access denied异常。
我做了一些搜索,发现如果你授予用户 ASPNET 完全控制它可以工作的目录,我就这样做了,它运行正常。
我的问题是:向 NETWORK SERVICE 和 ASPNET 用户授予完全控制权限有什么区别?
导致此问题的两台服务器有什么区别?
感谢
答案 0 :(得分:1)
在所有情况下,您都需要为应用程序池的用户帐户授予适当的访问权限。 IIS6引入了应用程序池。在IIS6之前,.NET应用程序在machine.config文件中配置的用户帐户下运行,因此您可以在那里查看以确定需要访问的用户。
默认情况下,网络服务已分配给应用程序池。听起来有人在其中一台服务器上设置不同。
答案 1 :(得分:1)
理想情况下,您不应该使用任何一个帐户。
您应创建一个低权限帐户,该帐户只能访问您拥有的每个Web应用程序所需的资源。将新帐户添加到IIS_WPG用户组。然后为每个应用程序创建一个应用程序池,并将其设置为专门为其创建的用户。
有关更改应用程序池标识的说明,请参阅this article(TechNet)。
我所描述的配置现在是Server 2008 R2 / Win 7(source)中的默认配置。
不幸的是,由于有人更改了第二台服务器上的默认配置,因此我们无法告诉您这两个帐户之间的差异。
您需要做的(或让您的IT部门做)需要比较每个帐户在本地计算机上拥有的权限。这将是乏味的。但是,如果您可以运行powershell,则可以使用this article编写脚本以列出每个帐户的权限并进行比较。
祝你好运找到差异。