2

これまで、カスタム 404 ページを使用して URL を書き換えてきました。URL はサイト内のどのファイルにもマップされず、IIS を構成して 404 エラーを aspx ページに送信し、それらの URL を正しい URL にリダイレクトしました。
ここで、リダイレクトの使用を停止する必要があるため、Scott Guthrie の Url Rewriting に関する記事を読んだ後、Global.asax で Application_BeginRequest を使用したいと考えています。問題は、多くの URL が書き換えられておらず、介入なしで適切な場所に到達できることです。すべてのリクエストが Application_BeginRequest メソッド (書き換えられていない URL であっても) を通過する必要があるのではないかと心配しており、読み込み時間が遅くなるのではないかと心配しています。
どう思いますか?Application_BeginRequest を使用する場合、読み込み時間は問題になりますか?

4

5 に答える 5

4

とにかく、すべてのリクエストは Application_BeginRequest を通過します。

書き換えが必要なページのみが変更されるように、いくつかのロジックを追加する必要があります。

その小さなロジックはそれほど高価ではありません。

私はそれを使用しましたが、パフォーマンスの低下にまったく気づきませんでした。

于 2008-12-01T11:53:23.483 に答える
3

問題を抱えている可能性のある他の人へのメモです。持っていることを確認してください

<modules runAllManagedModulesForAllRequests="true">

あなたのweb.configで

于 2010-02-11T10:57:17.933 に答える
3

より頻繁に使用し、Apache モジュール mod_rewrite を模倣する場合は、非常に堅牢なソリューションがあります。私はこれが気に入っています。

http://www.codeplex.com/IIRF

また:

http://urlrewriter.net/

http://www.managedfusion.com/products/url-rewriter/

この投稿でより多くのオプションを読むことができます:

ASP.NET URL 書き換え

ジョシュが言うように、重要な記事は http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspxです

于 2008-12-01T12:10:57.910 に答える
2

その記事は少し古いです...そして現在、.NETフレームワークにはより良いアプローチがあります。面白いのは、私があなたとまったく同じことをしていたことです (エラー ハンドラを乗っ取っています)。

http://www.singingeels.com/Blogs/Nullable/2007/09/14/URL_ReWriting_The_Right_Way_Its_Easy.aspx

それがあなたが今やりたいことだと思います。ああ、そしてパフォーマンスについて... ページ時間に約 0.00001 秒追加されます。

于 2008-12-01T12:11:54.443 に答える
1

Scott Guthrie の記事は良い記事ですが、彼が提案するように HttpModule を使用する代わりに、Global.asax を使用してこれを行うことを選択した理由が知りたいです。また、Asp.Net ページのライフサイクルは、とにかく Global.asax 内のこれらのイベントのすべてを実行します。

HttpModule イベントはすべてのリクエストを実行します。ロジックでおかしなことをしていない限り、問題はありません。Application_BeginRequest メソッドでのデータベース ルックアップでさえ、適切なキャッシュによって軽減できます。

疑わしい場合は、Traceに情報を書き込んで、ルーチンにかかる時間を正確に把握してください。最もコストのかかる操作 (データベース ルックアップ) と比較すると、時間はごくわずかであることがわかると思います。

于 2008-12-01T12:05:19.997 に答える