IIS web.config拒绝访问 未能开始监视对 XX 文件的更改

报错:加载配置文件时出错: 由于访问被拒绝,未能开始监视对“c:\inetpub\wwwroot\employ”等类似的烦人东西。

分析:这个项目是放在根目录下的,IIS配置没有问题,别的文件都可以浏览,就这个文件夹下的页面不能浏览,奇怪。回想这个原来是自己copy的一个文件,然后添加到项目中的。网上找到原因,是由于权限设置的问题,没有把Users的权限设置到文件夹和文件上去。

还有就是IIS设置问题,在IIS中看一下是不是子目录里创建了应用程序(或者做成了虚拟目录),这种情况下是会在子目录里查找web.config的.

补充:(转)

错误描述:对路径“****************.***”的访问被拒绝。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

解决方案一

在需要进行读写操作的目录下添加Network Service这个帐号(这个角色权限需要控制整个网站的目录),

由于在iis 6.0中,默认的应用程序池中的标示用的是Network Service,

所以在进程中是使用Network Service这个帐号运行来运行w3wp.exe进程,

而当我们在运行VS 2003的时候需要对某一个目录下进行读写操作,

看了一下该文件夹,发现没有Network Service,添加上该账号,同时选上FULL CONTROL,问题解决,

另:log4net写日志,文件夹的权限必须要有IIS_WPG账号的写权限。否则,不会记录日志。

******************************************************************************************

解决方案二

在IIS6.0中的默认应用程序池-->属性-->标示中把Net Service改成Local System该问题也可以解决。

*******************************************************************************************

什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。那么如何设置两种工作模式呢?

  在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池)。“应用程序池名称”框中,输入新的应用程序池名称。如果在“应用程序池 ID”框中出现的 ID (如:AppPool #1)不是您想要的,可进行重命名。如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。最后单击[确定]。

指派应用程序池

  在 IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。

  在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。最后单击[确定]。