0

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

4

2 回答 2

1

我花了很多时间弄清楚这一点。Google 上没有相关点击,所以我最终创建了一个新的 MVC4 项目,但这次通过部署程序集的向导添加 MVC4 Web 角色(右键单击)来创建它。这行得通。

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

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

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

如果在目标 4.5 之后将 ASP.NET MVC 4 项目更改为目标 4.0,然后部署到 Azure,您可能会在运行时看到 403 Forbidden 错误。要解决此问题,请将以下内容添加到您的 web.config:<modules runAllManagedModulesForAllRequests="true" />

下次我将更仔细地查看发行说明以查找新版本。

于 2012-10-05T10:20:39.103 回答
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>

于 2012-11-14T15:03:40.227 回答