我正在尝试向简单的Web服务添加功能,这样我就可以将信息记录到应用程序所在的硬盘驱动器上的XML文件中。当我在应用程序的控制台版本中使用该功能时,数据将记录到:
bin\x86\Debug MySolution.MyProject
的 \MessageLog\TestMessagess.xml
即可。
但是,当我尝试在ASP.NET应用程序中写入读取或写入XML文件时,我得到一条System.UnauthorizedAccessException
,其中包含以下消息:
拒绝路径'MessageLog'被拒绝。
我希望日志文件出现在应用程序目录的\bin
文件夹中,因此我需要更改IIS或服务器本身的哪些设置以允许我的应用程序读取和写入该文件文件夹?
我的机器:我正在使用带有ASP.NET 4.0的Windows XP SP3 。
答案 0 :(得分:4)
正如Russ所说,您需要向IIS使用的用户授予读/写权限。
对于最高6.0的IIS,身份名称为 NETWORK SERVICE 。
对于IIS 7.0,将基于每个应用程序池授予权限。身份模板是 IIS APPPOOL \%POOL-NAME%。因此,如果您的站点使用 MyApp 应用程序池运行,则应授予对 IIS APPPOOL \ MyApp 用户标识的读/写访问权限。这是默认行为。您还可以为应用程序池设置自定义标识(请参阅更多here)。
答案 1 :(得分:2)
尝试向Network Service
用户
答案 2 :(得分:1)
这是服务器安全性的功能,而不是IIS的功能。在Windows资源管理器中,浏览到该文件夹或文件,并设置安全性以允许运行IIS的用户具有访问权限。