2012-10-04 108 views
6

我收到错误:的Web.Config - 无法读取配置文件,由于没有足够的权限

Module IIS Web Core 
Notification Unknown 
Handler Not yet determined 
Error Code 0x80070005 
Config Error Cannot read configuration file due to insufficient permissions 
Config File \\?\C:\inetpub\wwwroot\web.config 

本身对IUSR完全权限的文件。 IIS正在ApplicationPoolIdentity下运行其应用程序池。我做了一个文件监视器上的文件,我看到这个:

9:04:43.8035456 AM w3wp.exe 8104 CreateFile C:\inetpub\wwwroot\Web.config ACCESS DENIED Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, AllocationSize: n/a 

不知道为什么我得到这个错误...任何想法?

回答

8

尝试给读这些帐户到Web应用程序的根文件夹下的所有文件/内潜艇/写访问:

网,网络服务,当然IIS_IUSRS

+0

我认为你的意思是IUSR(而不是IIS_IUSRS) – Shoham

+0

取决于你的Windows/iis安装。 IIS7 +是IIS_IUSRS(如果我记得正确)。 IUSR是一个IIS6的东西(如果我没有记错的话)。 –

0

首先,确保IUSR具有读取权限的配置文件(我相信你已经做了)

然后,改变IIS的身份验证方法BasicAuthentication

如果仍然没有工作,可能是的.config扩展未正确安装在IIS中。

尝试所有3!祝你好运!

编辑:忘了问你,它是什么样的应用程序?

+0

它的.Net网络服务(ASP.Net 4.0) IIS启用了BasicAuth和AnonymousAuth,并且该文件确实已经读取了IUSR的权限。我现在将检查IIS配置的.config扩展名。 – Sugitime

+0

我做了一个aspnet_regiis然后iisreset。仍然得到相同的错误。 – Sugitime

+0

您是否也可以尝试授予您整个应用程序目录的权限? – HOKBONG

0

我只是碰到这种进来并且无法将applicationpoolidentity作为帐户查找,以便将其添加到文件夹安全性中。我将application poolidentity的应用程序池标识更改为本地服务,并且该站点运行良好。

+0

作为一个例子,这有安全含义。如果您的应用程序存在缺陷,并且服务器遭到入侵,LocalSystem帐户基本上具有管理权限。考虑最小特权委托人并创建一个新的受限用户。 https://en.m.wikipedia.org/wiki/Principle_of_least_privilege – Sugitime

0

我正在复制一个活的WordPress网站到我的本地机器进行编辑/更新时,此IIS错误发生。更改权限什么也没做。

在我的情况下,只需删除web.config就可以了。

0

我发现将具有完全权限的mymachine/USERS添加到C:\ inetpub \ wwwroot中可以解决问题。

问题是由于我与其他开发人员共享C:\ inetpub \ wwwroot中的一些网站内容而导致的。这必须改变了权限并完全打破了我的IIS。

+0

我为我的wwwroot文件夹设置共享并开始出现此错误。这个解决方案也适用于我。 – madmike

0

今天我再次遇到这个问题。这一次,没有任何授予许可的权限(尝试了所有通常的帐户,每个人,只读,修改,完全控制)。

已关闭进程,重新启动IIS,完全重启。没有结果。

最终将所有者从“管理员”更改为我自己,事情就这样落实了。

我通常运行Visual Studio在管理水平(用我自己的帐户),因为我喜欢用本地IIS托管/调试ASP.NET网站。也许这导致新文件被\ Administrators拥有,而这些文件又可能受到IIS或App Pool进程对这些文件的有限访问。

我的默认应用身份集加载用户配置文件。我不知道会话管理器应用UAC /权限的时间点以及用户配置文件加载是否对此产生影响。食物的思想...

相关问题