在VS2012中创建全新的MVC4 Web角色项目时,在Azure上发布和运行时会出现HTTP错误403。在运行MVC4程序集和运行带有MVC4程序集的Azure部署程序集作为Web角色时,本地运行都很好。
答案 0 :(得分:1)
我花了很多时间搞清楚这一点。谷歌没有相关的点击,所以我最终创建了一个新的MVC4项目,但这一次是通过部署程序集的向导创建它来添加MVC4 Web角色(右键单击)。这很有效。
web.config中的一些差异给了我提示,第一个MVC4程序集是在.net 4.5上创建的,并且由我改为.net 4.0,而第二个是直接为.net 4.0创建的。这就是我最终找到MVC4 release notes:
的方式其中一个要点清楚地说明了我的具体情况:
403在从4.5更改为目标4.0后在Azure上运行ASP.NET MVC 4应用程序时禁止使用
如果在目标之后将ASP.NET MVC 4项目更改为目标4.0 4.5然后部署到Azure您可能会在运行时看到403 Forbidden错误。要解决此问题,请将以下内容添加到您的 web.config:
<modules runAllManagedModulesForAllRequests="true" />
下次我将仔细查看发布说明以了解新版本。
答案 1 :(得分:0)
尝试在System.WebServer:
之后将其添加到web.config<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>