web-dev-qa-db-ja.com

IIS 7.5でASP.NET MVC 2 Webアプリを実行できません

Windows 7でIIS=の下でASP.NET MVC 2 Webアプリケーションを実行しようとしていますが、403.14エラーが発生します。再現する手順は次のとおりです。

  1. Visual Studio 2010を開きます
  2. MvcApplication1という新しいASP.NET MVC 2プロジェクトを作成します
  3. Shift + F5を押してアプリを実行します。 http://localhost:{random_port}/が表示され、ページが正しくレンダリングされます。
  4. MvcApplication1をクリックし、「プロパティ」を選択します。 「Web」セクションに移動します。
  5. 「Use Local IIS Web server」を選択して、仮想ディレクトリを作成します。
  6. セーブ。
  7. Shift + F5を押してアプリを実行します。 http://localhost/MvcApplication1/とIIS error HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.。]が表示されるはずです。

何らかの理由で、ASP.NETルーティングが正しく機能していないことは明らかです。

私がすでに考えて試したこと:

  • すべてのIIS機能が[Windows機能の有効化または無効化]で有効になっていることを確認しました。
  • デフォルトのWebサイトが.NET 4.0を使用するように構成されていることを確認しました
  • aspnet_regiis -iディレクトリ内のv4.0.30319を介してASP.NET v4スクリップマップを再割り当てしました。

最も驚くべき部分があります-これはjust-builtマシン上にあります。 Windows 7 x64 Ultimateの新しいコピー、Visual Studio 2010 Premiumのクリーンインストール、他のWebサイトおよび実行された他の作業はありません。

私が試すことができる他の何か?

Setting Visual Studio to use local IIS web server

63
Portman

OK、これは私にとって次のことを行うことで解決されます:

ランニング aspnet_regiis -iの-​​2ビットディレクトリc:\Windows\Microsoft.NET\Framework\v4.0.30319

この時点で、64ビットモードが機能しない理由はわかりませんが、ブロックされていない状態です。うまくいけば、これがこの問題を抱えている他の誰にも役立つことを願っています。

86
Portman

私はまったく同じ問題を抱えていたので、あなたの助けに感謝します。

ただし... Visual Studio 64ビットコマンドプロンプトで(管理者権限で)_aspnet_regiis -i_コマンドを実行しようとしましたか?私がそれをしたとき、それは64ビットモードのためにそれを修正しました。

明確にするために、Visual Studio x64 Win64 Command Prompt (2010)を右クリックし、[管理者として実行]を選択しました。それから私はここに行きました:

_C:\Windows\Microsoft.NET\Framework64\v4.0.30319
_

そして、これをしました:_aspnet_regiis -i_

そして今、それは完全に動作します。

46
Tom Chantler

また、構成ファイルに次の行があることを確認してください。そうしないと、ルーティングが機能しません。

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
27
Rohan West

RunAllManagedModulesForAllRequestsを使用しないでください。 IIS画像などのリソースを処理させたい場合。

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

代わりに、MVCルーティングモジュールを追加します

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

注意すべきもう1つのことは、アプリケーションプールがクラシックではなく統合に設定されていることを確認することです。

7
JGilmartin

IIS8/Windows Server 2012でも同じ問題が発生しました。以下を試すまで、多くの提案されたソリューションのいずれも機能しませんでした。

dism /online /enable-feature /featurename:IIS-ASPNET45 /All

「/ All」スイッチがないと、親機能がインストールされていないという苦情がありました。

奇妙なことに、WindowsのWindowsの機能の有効化または無効化機能によると、asp.net 4.5は既にインストールされています。

Web.configに変更を加えたり、モジュールを追加または削除する必要はありませんでした。

4

VS 2008では常にカスタムサーバー設定を使用していましたが、それでも問題なくデバッグできます。 2010年に動作が異なるかどうかわからない

0
Daniel Schaffer

これらの症状がありました。僕の Global.asaxがクラッシュしていました。クラッシュを修正し、すべてが現在機能しています。

0
Charlie