一般的な投稿ですが、残念ながら Internet Information System は多数の構成の問題を引き起こす可能性があります。これはおそらく最大の落とし穴です。展開サーバー、ローカル サーバー、または運用サーバーで起動すると、結果が同じに見えないことがあります。
私は Internet Information System Six を使用します。これは Seven および Eight に似ていますが、特定の機能が欠けているだけです。
ASP.NET MVC Web アプリケーションのプロジェクト内で、プロジェクトを右クリックして [プロパティ] を選択します。
次の単語を示すタブが表示されます: *Web**
- このタブの下部にある [ IIS Web サーバーを使用]が選択されていることを確認します。
- そこにプロジェクトの URLを入れたいと思うでしょう。
このフィールドは次のようになります*http://localhost/ApplicationName*
。ここで本質的に行っていることは、IIS のプロジェクト ディレクトリをマッピングすることです。各 IIS サイトが次の内部にサイトを格納していることがわかります。
C:\inetpub\wwwroot
これがルート サイト フォルダで、IIS がすべてのサイト コンポーネントを参照します。** プロジェクト内のこの仮想ディレクトリは、リストされている IIS 構成アイテムと実際には異なることに注意してください。**
次に、Internet Information System を開き、ファイル拡張子を設定します。したがって、IIS で何かを行う前に、ASP.NET MVC インストーラーを構成する必要があります。への .mvc 拡張子へのマッピング (ISAPI) を構成する必要がありますaspnet_isapi.dll
。この手順は、IISが .mvc 拡張子を使用してルーティング要求を ASP.NETに渡すために必要です。
良いブログ投稿から、彼は次のように述べています。
拡張子のない URL を使用する予定がある場合は、このセクションをスキップできますが、拡張子のない URL を設定する際に知っておく必要がある情報が含まれているので、読んでおくと役立つ場合があります。.mvc を ASP.NET にマッピングする
.mvc URL 拡張子を使用する予定で、ASP.NET MVC がインストールされていないマシンに IIS 6 を展開する場合は、次の手順を実行してこのマッピングを作成する必要があります。
.mvc の代わりに .aspx 拡張子を使用する利点の 1 つは、.aspx 拡張子のマッピングについて心配する必要がないことです。マシンに ASP.NET が正しくインストールされていると仮定すると、既にマップされているはずです。
それ以外の場合は、仮想アプリケーション ノード (この場合は IIS6DemoWeb) を右クリックして [プロパティ] を選択します。次のダイアログが表示されます。

[仮想ディレクトリ] タブが表示されていることを確認し、 [構成]を選択します。これにより、ルート Web サイトへの変更が許可されます。これにより、Application Configuration Dialogが表示されます。これにより、アプリケーションを物理的にマッピングできます。それを使用するので、それ.mvc
を選択します。
.mvc
リストに見つからない場合は、次のデータ リンク ライブラリを参照できます。
c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
アプリケーションを実行する前に、適切なファイル拡張子を探すようにデフォルト ルートを更新する必要があります。拡張機能 Global.asax.cs
を使用していることを確認する必要があります。.mvc
次のようなメソッドを実装します。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}.mvc/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
}
これにより、サイトが適切に表示されるようになります。これは非常に一般的で幅広い例です。しかし、うまくいけば、これはあなたを良い方向に導きます.
アップデート:
インターネット情報システムセブンを利用するにあたっては、次のことに注意してください。
- サイト構成
- アプリケーション プール
- データベース構成
これら 3 つの項目は、不適切な構成の一般的な原因です。
本当に素晴らしいブログはここにあります: 別の素晴らしい記事はここにあります:
ただし、この記事はあなたの頭に直接釘を打つはずです:
私が述べたように、上記の詳細はあなたの問題を解決するはずです. しかし、IIS 7 の導入により、要求を許可する 2 つの完全に異なる方法があります: IntegratedとClassicです。
主な違いは、統合された方がパフォーマンスが向上し、より多くの機能が含まれることです。Classicは下位互換性のために設計されています。ルート リクエストの処理方法は、アプリケーション プールによって決まります。これが正しく構成されていません。うまくいきません。
- インターネット インフォメーション サービス マネージャーを起動します。
- [接続] ウィンドウで、アプリケーションを選択します
- [アクション] ウィンドウで、[基本設定] リンクをクリックして、[アプリケーションの編集] ダイアログ ボックスを開きます。
- 選択したアプリケーション プールをメモします。
デフォルトでは、IIS は DefaultAppPool と Classic .NET AppPool の 2 つのアプリケーション プールをサポートするように構成されています。DefaultAppPool が選択されている場合、アプリケーションは統合要求処理モードで実行されています。Classic .NET AppPool が選択されている場合、アプリケーションはクラシック要求処理モードで実行されています。

そのボックス内から、「アプリケーションの編集ダイアログ ボックス」内で処理モードを変更できます。
この追加情報があなたの目標達成に役立つことを願っています。最初の 2 つのブログは IIS を避けたもので、3 つ目のブログは特に IIS 7 に焦点を当てています。質問があればお知らせください。