90

ローカル (IIS Express および開発サーバー) で正常に動作する .net4.5 ASP.NET MVC4 Web アプリをビルドしましたが、Web サーバーに展開すると 403 エラーがスローされます。サーバーに .Net 4.5RC をインストールし aspnet_regiis -i 、MVC/.Net の以前のバージョンの問題に対して誰もが推奨したビットを試してみましたが、役に立ちませんでした。

何か案は?

編集:状況に関する詳細情報。サーバーは 32 ビットで、他に 4 つの MVC3 アプリケーションが正常に動作しています。動作していないのは私の MVC4 アプリだけです。

4

18 に答える 18

172

試す

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

経由

https://serverfault.com/questions/405395/unable-to-get-anything-except-403-from-a-net-4-5-website

于 2012-07-11T15:07:02.100 に答える
22

エラー 403.14 は、ディレクトリの内容を一覧表示できないことを示す HTTP エラー コードです。ことを確認してください

  1. IIS で Web サイトをアプリケーションとしてセットアップしました
  2. サーバーに .NET 4.5 がインストールされている
  3. 適切なバージョンの .NET Framework を実行するようにアプリケーション プールを設定しました (つまり、.NET 2.0 に設定されていません)。
  4. アプリケーション プールで統合パイプラインを使用している
  5. .NET 4.5 は実際には IIS に登録されています。同様の問題/解決策については、この投稿を参照してください

通常、IIS への MVC 展開に関する最大の問題は a と d です。

于 2012-07-11T13:13:35.063 に答える
11

おそらく...パブリッシュ ウィザードを使用して (私が行ったように)、[パブリッシュ中にプリコンパイル] チェックボックスを選択して (私が行ったように)、同じ症状が発生した場合...

ええ、私は頭を悩ませましたが、一見無関係な設定であるこのボックスのチェックを外した後、記載されているすべての症状は再展開後に消えます.

うまくいけば、これで一部の人々が修正されます。

于 2014-04-09T18:48:58.343 に答える
10

Windows -> スタート -> ウィドウ機能のオンとオフを切り替える

で必要なオプションを確認してください

ここに画像の説明を入力

于 2016-11-29T00:26:39.003 に答える
6

申請する前に

runAllManagedModulesForAllRequests="true"/>

より抜本的な代替手段を提案する以下のリンクを検討してください。投稿の中で、著者はローカルの web.config に次の変更を加えています。

  <system.webServer>
    <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    </modules>

http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

于 2014-02-13T17:51:45.763 に答える
5

RouteConfig.cs の url パラメーターのリテラル文字列値内の"id" の名前を誤って変更した Visual Studio 2012のリファクタリング --> バグの名前変更があります。これにより、Windows Server 2012 と Windows Server 2008 R2 の両方で、新しい、それ以外の場合は正しいセットアップで 403.14 が発生しました。

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

に変更されました

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{renamed_text}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
于 2013-12-18T16:47:14.183 に答える
2

Windows 8 または Server 2012 で IIS 8.5 を実行している場合、仮想ディレクトリで mvc 4/5 (.net 4.5) を実行しても機能しないことがあります。ホスト ファイルにローカル ホスト エントリを作成してローカル マシンを指すようにし、新しいローカル IIS Web サイトをそのフォルダに (一致するホスト ヘッダー エントリを使用して) 指すようにすると、それが機能することがわかります。

于 2014-04-29T02:21:07.827 に答える
2

また、統合パイプラインを使用している開発サーバーでテストし、ライブ IIS 7.5 Web サーバーにクラシック パイプライン モードとしてインストールする場合、403 を取得することもできます。また、必要な app_data フォルダーがありませんでした。

于 2014-07-23T18:54:10.397 に答える
1
<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

U can use above code

于 2015-04-09T14:42:19.337 に答える
1

新しいアプリのアプリケーション プールをDefaultAppPoolIIS で に設定しましたが、これは明らかに でClassicパイプラインを使用してい.NET v.2.0ます。

Integratedこの問題を解決するために、パイプラインとを使用して新しいアプリケーション プールを作成しました.NET v4.0。この新しいアプリケーションのためだけに、すべてが期待どおりに機能し始めました。

この新しいアプリ プールをアプリケーションに割り当てることを忘れないでください。IIS でアプリケーションを選択し、 をクリックBasic Settingsして、アプリの新しいアプリ プールを選択します。

于 2015-04-15T13:32:17.350 に答える
0

最近よく目にするのは IIS で、32 ビット アプリケーションを実行できるようにするものです

これはあなたが試したことです。それ以外の場合は、本番サーバーと開発サーバーのバージョンに関する詳細情報が必要です

于 2012-07-11T05:52:18.410 に答える
0

サーバー2012では、どういうわけかasp.net 4.5を有効にするのを忘れていたので、この問題がある場合は、有効にすることを再確認してください。

于 2013-03-04T23:27:06.293 に答える