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>
    
     
    
   
 
