我使用razor引擎创建了一个带有.net 4.5的MVC4应用程序。使用visual studio在本地运行时,它工作正常。
当我在Windows Server 2008 R2上部署到IIS(完成所有Windows更新)时,我的捆绑包不起作用且CCS未加载。我尝试在服务器上查看该站点,查看源代码转到css的bundle链接,然后加载一些css然后出现IIS错误:
HTTP错误403.14 - 禁止将Web服务器配置为不 列出该目录的内容。
我尝试过:
1)确保安装了.net 4.5
2)将<modules runAllManagedModulesForAllRequests="true"/>
添加到我的web.config中
3)在cmd中跑%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
4)检查我的应用程序池是否已设置为集成模式
5)检查它是否设置为使用.net 4
答案 0 :(得分:46)
您可以在此处找到答案:ASP.NET MVC framework 4.5 CSS bundles does not work on the hosting
简短的回答是确保您的软件包名称与您网站中的路径名称不冲突。
答案 1 :(得分:7)
这为我解决了(解决方案来自MVC4 HTTP Error 403.14 - Forbidden)
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
答案 2 :(得分:2)
确保在您的web.config中启用了对“虚拟”捆绑路径的匿名访问。
例如,如果您的样式包类似于“〜/ content / blahblah”,并且您的javascript包类似于“〜/ scripts / blahblah”,则必须打开anonymoys访问位置“内容”和“脚本”,如下所示web.config中:
<configuration>
...
<location path="content">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="scripts">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
...
</configuration>
这样,任何用户对虚拟路径“〜/ content”或“〜/ scripts”的任何请求都将被授予,并且将提供CSS和JS请求。
答案 3 :(得分:1)
导致403.14的另一个潜在问题是global.asax和/或web.config未在发布设置或部署中复制。