2

MVC アプリを IIS6 にデプロイしようとして、レンガの壁に頭をぶつけています (リンクされた質問)

当面はワイルドカード マッピングを廃止し、.mvc 拡張子を機能させようとしています。IIS ですべてが正しく構成され、.mvc 拡張子がすべての動詞タイプの .NET dll を指しています (存在するかどうかを確認するオプションのチェックを外します)。

要求を行うたびに、取得するのは .NET 404 ページだけです。/Home.mvc と /Home.mvc/Index はすべてそのページを返します。

デフォルトの Web.config に変更を加えておらず、すべてのルートが拡張なしおよび拡張ベースの同等のもので構成されています。

この構成が機能するようになったすべての読者にとって、この構成がいかに簡単であるか (サウンド) に感謝します。IIS6 を使用して別のサーバーに展開しようとしたところ、同じ問題が発生しました。

ルーティング モジュール/ハンドラーが要求を完全に欠落し、標準の .NET 404 エラーに陥る理由が他にあるでしょうか? 奇妙な許可?

IIS 404 エラーについては、カスタム エラー設定を更新して、サイトのルートで Default.aspx ページを呼び出すようにしました。これは、Visual Studio で生成された MVC ベータ テンプレートの既定のページであり、コード ビハインドで次のことを行います。

HttpContext.Current.RewritePath(Request.ApplicationPath);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);

これにより、以前の投稿のエラーが表示されます。

[HttpException (0x80004005): The incoming request does not match any route.]
   System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContextBase httpContext) +15589
   System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContext httpContext) +40
   System.Web.Routing.UrlRoutingHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) +7
   ......
4

5 に答える 5

3

の最初の問題は、Web サイトで Global.asax ファイルが必要であると指摘したOliによって解決されました。NAnt/MSBuild を使用してリリース パッケージを展開していましたが、Global.asax ファイルが含まれていませんでした。このファイルは、すべての .NET 2 プロジェクトで無視することができ、すべての NAnt 展開構造に含まれているため、私はそれを考慮しませんでした。

今後のために注目の1枚。私が見つけられなかったものはすべてOliの功績です。再度、感謝します!

于 2008-11-12T23:47:00.527 に答える
1

可能な限り単純な構成から始めてみてください。Route 定義を .mvc の代わりに .aspx を使用するように変更し、/home.aspx/index が機能するかどうかを確認します。

于 2008-11-12T23:38:18.080 に答える
0

URLの書き換えは、問題の解決に役立ちます。仮想ホスティングが使用されている場合でも、任意のIISバージョンでMVCアプリケーションを展開できるソリューションを実装しました。 http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx

于 2009-11-24T06:24:20.130 に答える
0

デフォルトの Web.config に変更を加えておらず、すべてのルートが拡張なしおよび拡張ベースの同等のもので構成されています。

延長ルートと延長ルートなしの順番は?

extensionless を削除するか (拡張機能を使用しているため)、拡張ルートの後に追加するようにします (ルーティングの最初の一致の性質のため)。

また、http://www.asp.net/learn/mvc/tutorial-08-cs.aspxをチェックして、IIS が正しく設定されていることを再確認してください (正しく設定されているようです)。

于 2008-11-12T13:35:25.910 に答える
0

Huey に感謝します。その投稿も確認してください。すべてが同じように構成されています。

純粋に、ISAPI 書き換えモジュールを使用し、ルート テーブルから生成されたすべての URL をクリーンにしたいため、拡張なしのルートが拡張ルートの前に出力されます。その後、拡張ベースのものに書き直されます。

現時点では、拡張子のない URL についても気にしませんが、クライアントに表示できるようにバージョンを機能させたいだけです。私は今まで MVC のことを本当に楽しんできましたが、これは物事の輝きを奪いました。

ご協力いただきありがとうございます。

于 2008-11-12T17:38:49.210 に答える