2009-08-20 6 views
2

新しい開発ボックスを取得したばかりで、MVCプロジェクトの起動時に問題が発生しています。私の古い箱にはServer 2003とIIS6がありました。 hereのようにワイルドカードマッピングを設定した後、私はこのボックスでMVCアプリケーションを動かすことができました。私の新しいボックスはVista BusinessとIIS7を実行しています。アプリケーションをコピーして実行しようとすると、「http 404リソースが見つかりません」というメッセージが表示されます。エラー。しかし、新しいMVCアプリケーションを作成して実行すると、すべて正常に動作します。私はまた、私の古いボックスからNerd Dinnerアプリをコピーしました。それもうまくいきます。404 ASP.NET MVCアプリケーションをIIS6からIIS7に移動するときのエラー

アプリが統合モードで動作していることを確認しました。動作中のアプリと動作していないアプリのweb.configファイルを比較しましたが、アプリケーション固有の設定以外は何も表示されません。私は、ワイルドカードマッピングの設定でクラシックモードでアプリを実行しようとしましたが、それはどちらも動作しません。私はまた、カッシーニを使用してアプリを実行しようとしたが、同じ結果を得た。

+1

Fiddlerを実行して、実際に404を生成しているリクエストを確認できますか? –

+0

アプリのホームページへの最初のリクエストです。 つまり{ホスト名}/{アプリ名}/ – Hamman359

答えて

0

問題を解決しました。問題のアプリケーションは、概念実証プロジェクトとしてMVCに渡すWebフォームアプリケーションのポートです。したがって、プロジェクトが最初に作成されたときに、プロジェクト名の最後に.MVCを追加して{project name} .MVCにしました。これは、驚くことではないが、何が起きているかを知ったので、デフォルトのルーティング定義に問題が発生しました。私は、期間の代わりにアンダースコアを使用するように名前を変更し、すべてが今動作します。ワイルドカードマッピングを使用してセットアップされていたのでIIS6で動作していたのでうまく動作したと仮定しているため、混乱する.MVC拡張はありませんでした。

1

私が以前IIS 6でホストされているたMVCベースのアプリケーションは、今6は、拡張子をサポートしていませんIISた

http://nkitdugar.blogspot.com/2011/02/special-care-while-migrating-mvc.html

でそれをチェックアウトし、私のブログ上の答えを掲載しています既定ではURLルートであるため、IIS6の{ControllerName} .aspx {Action method} {Id}のように定義された既定ルートのコントローラ名に拡張子を追加する必要があります。また、.mvcなどの拡張機能を使用したい場合は、ワイルドカードマップなどの手法を使用してマップする必要がありました。

IIS7に移行すると、URLがサポートされる拡張子のないURLがサポートされます。それに対応する物理的な場所がない。

MVCアプリケーションをIIS7に移行するときは、Globla.asaxのデフォルトルート定義にコントローラで定義された拡張子が{controller}.aspx\{action method}\{Id}でないことを確認し、\clean URL route {Controller}\{Action Method}\{ID(optional)}に変更してください。 ウェブサイトのAppPoolのパイプラインモードは、classicからIntegratedに設定する必要があります。

これで、あなたのウェブサイトはIIS7でホストされる準備が整いました。

+1

[自己紹介に関するよくある質問](http://stackoverflow.com/faq#promotion)をよく読んでください。また、サイト/製品にリンクするたびに免責事項を掲載する必要があります。 – j0k

関連する問題