Asp.net mvc 4 在Azure上运行MVC4时出现错误403禁止

Asp.net mvc 4 在Azure上运行MVC4时出现错误403禁止,asp.net-mvc-4,visual-studio-2012,.net-4.5,http-status-code-403,azure-web-roles,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程序集作为web角色运行Azure部署程序集时,本地运行都很好。我花了很多时间来解决这个问题。在Google上没有相关的点击,所以我最终创建了一个新的MVC4项目,但这次通过部署程序集的向导添加MVC4 web角色(右键单击)来创建它。这起作用了 web.config中的一些差异提示我,第一个MVC4程序集是在.net 4.5上创建的,我已将其更改为.net

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

我花了很多时间来解决这个问题。在Google上没有相关的点击,所以我最终创建了一个新的MVC4项目,但这次通过部署程序集的向导添加MVC4 web角色(右键单击)来创建它。这起作用了

web.config中的一些差异提示我,第一个MVC4程序集是在.net 4.5上创建的,我已将其更改为.net 4.0,而第二个程序集是直接为.net 4.0创建的。这就是我最终发现的原因:

其中一个要点清楚地说明了我的确切情况:

403从4.5更改为目标4.0后在Azure上运行ASP.NET MVC 4应用程序时禁止:

如果在设置目标后将ASP.NET MVC 4项目更改为目标4.0 然后部署到Azure,您可能会在运行时看到403禁止的错误。要解决此问题,请将以下内容添加到 web.config:


下次我将更仔细地阅读发行说明以了解新版本。

尝试将此添加到web.config,在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-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>


我不确定这是否相关?看看我自己的答案。此行为已记录在案,并将在Azure支持.NET 4.5后尽快修复。