27

Razor エンジンを使用して .net 4.5 で MVC4 アプリケーションを作成しました。Visual Studio でローカルに実行すると正常に動作します。

Windows Server 2008 R2 (すべての Windows 更新が完了) で IIS に展開すると、バンドルが機能せず、CCS が読み込まれないようです。サーバーでサイトを表示しようとしましたが、表示されたソースは css のバンドル リンクに移動し、いくつかの css をロードすると、次の IIS エラーが発生します。

HTTP エラー 403.14 - 許可されていません Web サーバーは、このディレクトリの内容を一覧表示しないように構成されています。

私が試したこと:

1) .net 4.5 がインストールされていることを確認します。2) web.config に
追加 3) cmd で実行 4) アプリケーション プールが統合モードに設定され ていることを確認 5) .net 4 を使用するように設定されていることを確認<modules runAllManagedModulesForAllRequests="true"/>
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

4

4 に答える 4

46

ここで答えを見つけることができます: ASP.NET MVC フレームワーク 4.5 CSS バンドルは、ホスティングでは機能しません

簡単な答えは、バンドル名がサイト内のパス名と競合しないようにすることです。

于 2012-12-08T02:57:23.040 に答える
7

これで解決しました(解決策はMVC4 HTTP Error 403.14 - Forbiddenからのものです)

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>
于 2013-03-14T18:28:26.580 に答える
2

web.config で、「仮想」バンドル パスへの匿名アクセスが有効になっていることを確認してください。

たとえば、スタイル バンドルが「~/content/blahblah」のようなもので、JavaScript バンドルが「~/scripts/blahblah」のようなものである場合、web.config でこのように、場所「コンテンツ」と「スクリプト」への匿名アクセスを開く必要があります。 :

<configuration>
 ...
 <location path="content">
  <system.web>
   <authorization>
    <allow users="?" />
   </authorization>
  </system.web>
 </location>

 <location path="scripts">
  <system.web>
   <authorization>
    <allow users="?" />
   </authorization>
  </system.web>
 </location>
 ...
</configuration>

このようにして、任意のユーザーによる仮想パス「~/content」または「~/scripts」への要求が許可され、CSS および JS 要求が処理されます。

于 2012-12-10T11:34:57.760 に答える
1

403.14 の原因となるもう 1 つの潜在的な問題は、global.asax や web.config が公開設定または展開でコピーされないことです。

于 2015-10-09T08:00:56.640 に答える