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 に変更されたのに対し、2 つ目のアセンブリは .net 4.0 用に直接作成されたことがわかりました。それが私が最終的にMVC4リリースノートを見つけた方法です:

箇条書きの 1 つは、私の正確な状況を明確に示しています。

ターゲットを 4.5 から 4.0 に変更した後、Azure で ASP.NET MVC 4 アプリケーションを実行すると 403 Forbidden が発生する:

ASP.NET MVC 4 プロジェクトをターゲット 4.5 の後でターゲット 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 に答える