我创建目录和文件写入到正在Windows Server 2008上托管的我正在运行的应用程序池的身份我的web应用程序中的共享文件夹ApplicationPoolIdentity。ApplicationPoolIdentity用户不能修改共享文件夹中的文件在Windows Server 2008
为了让你对我的设置有所了解。我已经将权限设置为我的Web应用程序根目录的根目录给两个不同的用户:“IUSR”和“IIS APPPOOL \ MYPOOL”。我使用名称“MYPOOL”作为我的应用程序池的名称,因此很容易参考。
该应用程序是无法修改和写入到共享文件夹。我右键单击了我要创建目录并写入的共享文件夹,然后单击“安全”选项卡。然后我点击“编辑”。在对象下面,我检查了“计算机”。然后在LOCATION下,我试着运行我的web应用程序的机器/服务器。但我无法在用户下找到我的“MYPOOL”用户。我试图遵循这个链接,但并不完整。我不知道要使用哪个用户。我继续得到一个System.IO异常,因为它没有权限。一旦我知道要使用哪个用户,我将不得不对“ExportPath”目录提供“修改”权限。
对于一个快速测试,我做了名为FilePermissionsTest.aspx虚拟页面,并把一些代码来写一个文件来创建一个目录,并在代码中的我的Page_Load事件写入文件后面。但是我还没有足够的时间去测试它。
...
<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
你可以继续,并详细介绍你的答案,而不是引用链接的步骤?如果你这样做,我会改变你的答案。我的回答很好,但你的看起来是微软设计它的方式。 – MacGyver 2012-03-03 07:02:50