代码改变世界

IIS上部署Web站点出现“配置错误 不能在此路径中使用此配置节”

2012-07-24 00:25  chenmenghappy  阅读(583)  评论(0编辑  收藏  举报

错误描述:

本人在Win7 + IIS7.5 下部署Discuz!Asp.Net论坛源码时出现

配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的
allowOverride="false" 的位置标记明确设置的。

Web.Config配置文件配置信息:

 1 <system.webServer>
 2   <modules>
3 <!--注意:此节设置由Discuz!NT接管http请求。不会干涉对非Discuz!NT论坛路径下的请求。--> 4 <add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" /> 5 </modules> 6 <defaultDocument> 7 <files> 8 <clear /> 9 <add value="index.aspx" /> 10 <add value="forumindex.aspx" /> 11 <add value="spaceindex.aspx" /> 12 <add value="albumindex.aspx" /> 13 </files> 14 </defaultDocument> 15 <directoryBrowse enabled="true" /> 16 <handlers> 17 <remove name="CGI-exe" /> 18 <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" lockItem="false" /> 19 </handlers> 20 </system.webServer>

出现如上错误是IIS7以上版本中采用了更加安全的Web.Config配置文件管理措施,默认情况下不允许更改配置项,但在IIS7中部署会导致Web站点访问错误,这会我出现的错误是“modules”节点被锁住了,以系统管理员的身份在CMD中运行

%windir%\system32\inetsrv\appcmd
unlock config -section:system.webServer/modules 命令就可以解决modules节点被锁问题,若,被锁节点为“handlers”同样将当前命令中最后一个/后面的文字替换成被锁节点即可。

如:%windir%\system32\inetsrv\appcmd
unlock config -section:system.webServer/handlers