最近发现网站访问子菜单报404错误,原因是mvc使用了伪静态
网上搜索说配置中启用runAllManagedModulesForAllRequests=true即可,但是看看配置已经存在,
<system.webServer>
<validation validateIntegratedModeConfiguration=”false” />
<modules runAllManagedModulesForAllRequests=”true”>
<remove name=”WebDAVModule” />
<!– add this –>
</modules>
<handlers>
<remove name=”ExtensionlessUrlHandler-ISAPI-4.0_32bit” />
<remove name=”ExtensionlessUrlHandler-ISAPI-4.0_64bit” />
<remove name=”ExtensionlessUrlHandler-Integrated-4.0″ />
<add name=”ExtensionlessUrlHandler-ISAPI-4.0_32bit” path=”*.” verb=”GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS”
modules=”IsapiModule” scriptProcessor=”%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll”
preCondition=”classicMode,runtimeVersionv4.0,bitness32″ responseBufferLimit=”0″ />
<add name=”ExtensionlessUrlHandler-ISAPI-4.0_64bit” path=”*.” verb=”GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS”
modules=”IsapiModule” scriptProcessor=”%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll”
preCondition=”classicMode,runtimeVersionv4.0,bitness64″ responseBufferLimit=”0″ />
<add name=”ExtensionlessUrlHandler-Integrated-4.0″ path=”*.” verb=”GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS”
type=”System.Web.Handlers.TransferRequestHandler” preCondition=”integratedMode,runtimeVersionv4.0″ />
</handlers>
</system.webServer>
但是仍然报错。
后来改了应用程序池的经典改为了集成,网站恢复正常。
后来又查了资料,说如果切换到经典模式,也不影响网站的正常运行,只不过伪静态需要自己再配置iis的isapi,这个网上可以搜到设置方法。