IIS7部署MVC4网站,在本机一起正常,直接访问端口号能显示默认网页,但发布却一直报403.14错误。web服务器被配置为不列出此目录的内容。
1、尝试过:控制面板 - 管理工具 - Internet 信息服务(IIS)管理器 - 目录浏览,选择启用即可。结果只是列出内容。没有达到显示默认网页的效果。
2、尝试设置runAllManagedModulesForAllRequests,现象依旧。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
3、参考http://blog.csdn.net/lingxyd_0/article/details/43154867
发现服务器上安装的.netframework 不是4.5,而是4.5.1。
果断将4.5.1卸载,重新安装dotnetfx45_full_x86_x64.exe。重新注册iis,32位的和64位的都注册一下。
4、用之前可以的配置文件,居然可以了。
5、
<system.webServer>
<validationvalidateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
在web.config增加<modules runAllManagedModulesForAllRequests="true" />
结论:
1、实测可用的web.config配置。
2、后续遇到这类问题,可以尝试安装.netframework 4.5。
<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<appSettings>
</appSettings>
<!--
有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。
可在 <httpRuntime> 标记上设置以下特性。
<system.Web>
<httpRuntime targetFramework="4.5" />
</system.Web>
-->
<system.web>
<!-- <authentication mode="None"/> -->
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime/>
<pages controlRenderingCompatibilityVersion="4.0"/>
<!-- <customErrors mode="Off"/> -->
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>