ApplicationPoolIdentity用户无法修改Windows Server 2008中的共享文件夹中的文件

我正在创build目录,并将文件写入到在Windows Server 2008上托pipe的Web应用程序中的共享文件夹中。我正在运行具有ApplicationPoolIdentity标识的应用程序池。

为了让你知道我的设置到目前为止..我已经将权限设置为我的Web应用程序根目录的根目录到两个不同的用户:“IUSR”和“IIS APPPOOL \ MYPOOL”。 我使用名称“MYPOOL”作为我的应用程序池的名称,所以很容易参考。

应用程序无法修改和写入共享文件夹。 我右键单击我正在创build目录的共享文件夹并写入,然后单击“安全”选项卡。 然后我点击“编辑”。 在对象下,我查了“计算机”。 然后在LOCATION下,我试着运行我的web应用程序的机器/服务器。 我无法在用户下find我的“MYPOOL”用户。 我试图按照这个链接,但它不是很完整。 我不知道要使用哪个用户。 我继续得到System.IOexception,因为它没有权限。 一旦我知道要使用哪个用户,我将不得不对“ExportPath”目录给予“修改”权限。

这不适合我: http : //grekai.wordpress.com/2011/05/23/permissions-for-shared-folder-for-iis-7-application-pool-identity-across-domain/

为了进行快速testing,我制作了一个名为FilePermissionsTest.aspx的虚拟页面,并将一些代码写入一个文件以创build一个目录,并在后面的代码的Page_Load事件中写入一个文件。 但是我没有足够的时间来testing它,因为它不会写入文件。

<div> Check to see if the file "_File_Permissions_Test.txt" was written to <% Response.Write(Data.ConfigurationHelper.ValueFromConfiguration("ExportPath", Nothing))%> </div> 

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim exportPath As String = Data.ConfigurationHelper.ValueFromConfiguration("ExportPath", Nothing) If exportPath = String.Empty Then Return Dim exportDirectory As DirectoryInfo = Directory.CreateDirectory(exportPath) Dim writer As StreamWriter = File.CreateText(Path.Combine(exportDirectory.FullName, "_File_Permissions_Test.txt")) writer.WriteLine("TESTING... " + DateTime.Now().ToString) writer.Flush() writer.Close() End Sub 

如果您使用指定的身份运行应用程序池,则授予对计算机帐户的权限将不起作用。 您应该使用域帐户运行您的AppPool,并为该帐户授予对共享文件夹的适当权限。 如果共享文件夹位于远程计算机上,则使用本地帐户也将无法工作。

如果您没有域,可以使用LocalSystem运行AppPool,并且应该授予对共享文件夹的计算机帐户权限。 但从安全angular度来看,这可能不是最理想的。

您应该input了计算机名称,而不是ApplicationPoolIdentity。 那是你的问题,试试吧! 它应该工作。