错误描述:
本人在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