在Azure上运行MVC4时禁止错误403

时间:2012-10-05 10:20:39

标签: asp.net-mvc-4 visual-studio-2012 .net-4.5 http-status-code-403 azure-web-roles

在VS2012中创建全新的MVC4 Web角色项目时,在Azure上发布和运行时会出现HTTP错误403。在运行MVC4程序集和运行带有MVC4程序集的Azure部署程序集作为Web角色时,本地运行都很好。

2 个答案:

答案 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>