.net 4.0 - ASP.NET IIS 7.5 の MVC




.net-4.0 iis-7.5 (19)

私はVisual Studio 2010 RCを使用してWindows 7 Ultimate(64ビット)を実行しています。 私は最近、VSがそれに付属のdevサーバーではなく、IIS上で自分のアプリケーションを実行/デバッグすることに決めました。

しかし、私はMVCアプリケーションを実行しようとするたびに、私は次のエラーが表示されます:

HTTPエラー403.14 - 禁止Webサーバーは、このディレクトリの内容を一覧表示しないように設定されています。 詳細

エラー情報

モジュールDirectoryListingModule

通知ExecuteRequestHandler

ハンドラStaticFileエラー

コード0x00000000が要求されました

URL http:// localhost:80 / mySite /

物理パスC:\ myProject \ mySite \

ログオン方法匿名ログオン

ユーザー匿名

私はディレクトリにdefault.aspxファイルを配置し、私は次のエラーを受け取りました:

HTTPエラー500.21 - 内部サーバーエラーハンドラ "PageHandlerFactory-Integrated"のモジュールリストに不正なモジュール "ManagedPipelineHandler"があります

この作業をするために忘れた他のステップはありますか?

注:VS 2010 RCをインストールした後、IIS 7.5をインストールしました。 Visual Studio 2010のMVCプロジェクトの[プロパティ]の[Web]タブの下にある[Create Virtual Directory]ボタンを使用しました。アプリケーションがASP.NET 4 App Poolを使用していることを確認しました。

以下は、私が持っているIISのインストールされている機能です。


32ビットモードに頼ることなくこの問題を解決するには、このプロジェクトのソースコードを更新する必要があります

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

私は、この問題をITクラウドコードプレックスプロジェクトのディスカッション掲示板に関する議論として提起しました。

http://itcloud.codeplex.com/discussions/262000


ASP.NET 4はIISに登録されていません。 コマンドラインで次のコマンドを実行する必要がありました/実行

32ビット(x86)Windows

%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64ビット(x64)Windows

%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

David Murdochのコメントからのメモ:

この回答が投稿されて以来、.netのバージョンが変更されました。 %windir%\ Microsoft.NET \ Framework64ディレクトリにあるフレームワークのバージョンを確認し、実行前にコマンドを変更してください(現在v4.0.30319)


MVCアプリケーションを新しいサーバーに移動しました。 .NET 4とMVC 3がインストールされましたが、まだ「エラー403.14」があります。 この場合、これはIISがMVCアプリケーションを処理していることをIISが理解しておらず、デフォルトのページを探していたことを意味します。

解決策は単純でした。サーバーにHTTPリダイレクトがインストールされていませんでした。

サーバーマネージャー - 役割 - Webサーバー(IIS) - 役割サービス - HTTPリダイレクト:インストールされていません。 それをインストールし、問題を解決しました。


UIは、新しいバージョンのWindows Serverでは少し異なります。 ここでは、IIS上で動作させるためにASP.Netを有効にする必要があります


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


Windowsコンポーネントを追加/削除し、.net再起動のバージョンを削除してIISに登録するために再インストールする必要があるWindows 8ユーザーには注意してください。 私はVisual Studioから.net 4.5を入手し、後でIISをインストールするとこれが起こると推測します。


あなたが持っていることを確認するもう一つのことは、あなたのweb.configに次のように設定されています:

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

このエラーを解決するには、cmdをadminとして実行します。

32ビットWindows用の画像と同じ操作を行う

ちょうどフレームワークの代わりにframework64として64ビットを変更してくださいiisに行き、サイトを更新するより
あなたはまだいくつかのエラーがアプリケーションプールで変更を持っている場合


これが起こる別の理由は、 RouteConfig.csまたはWebApiConfig.csが無効であることです。

私の場合は、そのように定義されたルートがありました(中括弧の代わりにかっこに注意してください)。

...
routeTemplate: "api/(something}"
...

これは私のために働いたし、別のものに役立つかもしれない。

おそらく、必要なすべてのコンポーネントが存在しないか、すべてが正しく登録されているとは限りません。 これを解決するには、コントロールパネル - > Windowsの機能を有効または無効にする - >インターネットインフォメーションサービス - >ワールドワイドウェブサービス - >アプリケーション開発機能のすべてのオプションのチェックを外し、すべてのオプションをオフにして、問題が解決したかどうかを確認してください。


また、アプリがプリコンパイルされている場合は、

PrecompiledApp.config

それ以外の場合は、 HTTP Error 403.14する可能性がありHTTP Error 403.14


もう一つの可能​​な解決策は、あなたがglobal.asaxの周りを移動する場合、マークアップが正しいMvcApplicationクラスを指していることを確認することです。 うまくいけば、これは将来誰かを救うでしょう。


私にとって、解決策は、WebプロジェクトにNuGetパッケージMicrosoft.AspNet.WebPages(プラスRazorとInfrastructureの依存関係)を追加することでした。

インフラストラクチャは最初に参照として追加されていないため、強制的に再インストールする必要がありました。


私の場合、ASP.NET 4.5はサーバーにインストールされていないので、ASP.NET 4.5をインストールすると問題が解決しました。


私は1つのポイントからデフォルトルートを変更しました:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

に:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

それは私にあなたのエラーを与えた。 私はおそらくこれに永遠にいただろうから、誰かがルーティングに言及してくれてうれしいです。


私はこの問題を引き起こした別の問題を抱えていました。

  • 私は私のアプリケーションプールが実行されていることを確認しました。ネット4統合モード
  • 私はaspnet_regiis.exe -iを実行していた
  • 私はフォルダのアクセス許可が私のアプリケーションプールを実行しているアカウントに対して正しく設定されていることを確認しました

これらの事柄のどれも働かなかった。 それは、私のweb.configのsystem.webserver> modulesの下で、私は以下のことを知っていました:

<remove name="WindowsAuthentication" />

明らかに、これはWindows認証モジュールを削除していました。

私はこれが誰かを助けることを願っています。


私は突然同じ404.14の問題に出会った。 最後に、パブリッシュ・プロファイル設定で「パブリッシュ中にプリコンパイル」をオフにして問題を修正しました。



誰かがこのエラーを起こすもう一つの理由は、ファイルGlobal.asaxがルートフォルダにもうない場合です。







iis-7.5