WebフォームアプリケーションにURLルーティングを使用することを計画していました。しかし、いくつかの posts を読んだ後、それが簡単なアプローチであるかどうかはわかりません。
RL Rewrite module をWebフォームに使用する方が良いですか?ただし、これはIIS7専用です。最初は、URLルーティングがAsp.Net MVCから完全に分離され、Webフォームに使用できるという噂がありました。
どんな提案も聞きたいです。
IISチームのメンバーからの2つの違いについて ここに大きな投稿 があります。
私が忠告する警告の1つは、Webフォームの場合、ルーティングを使用するときは注意する必要があることです。これらの懸念に対処し、うまくいけば質問への回答を助ける WebFormsを使用したルーティング の使用方法のサンプル実装を作成しました。
これは、このトピックについて私が見つけた最高の記事です: IIS URL Rewriting and ASP.NET routing by Ruslan Yakushev。
クライアントがWebサーバーに特定のURLを要求すると、URL書き換えコンポーネントは、要求されたURLを分析し、同じサーバー上の別の別のURLに変更します。 URL書き換えコンポーネントは要求処理パイプラインの非常に早い段階で実行されるため、Webサーバーが要求の処理に使用するハンドラーを決定する前に、要求されたURLを変更できます。
ASP.NETルーティングは、Resolve Cacheステージ(PostResolveRequestCacheイベント)およびMap Handlerステージ(PostMapRequestHandler)でIIS要求処理パイプラインにプラグインするマネージコードモジュールとして実装されます。 NETルーティングは、Webアプリケーションに対して行われたすべての要求に対して実行されるように構成されています。
URL書き換えとASP.NETルーティングの違い:
これらの概念的な違いに加えて、IIS URLの書き換えとASP.NETルーティングの間にはいくつかの機能的な違いがあります:
フォーマットされたURLをページのスポーンのファクトリーにしたいですか?
または、.aspxを廃止しますか?
書き換えは、.aspxを廃止するため、または単にURLを整理するためのものです。
ルーティングは、リクエストを見て、それを処理するオブジェクトを決定するためのものです。それらは同じように聞こえます、フィル・ハックは主題に関していくつかの良い記事を持っています。
iis6では、isapiRewriteは非常に優れています
私は最近、自分のサイトのURLの見栄えをよくするために独自の書き換えシステムを作成しました。基本的には、独自の IHttpModule を記述してweb.configに追加し、着信要求をインターセプトする必要があります。次に、HttpContext.Current.RewritePathを使用して、ポイントしているものを変更できます。
また、サイトを すべてにaspnet_isapiを使用する に構成することもできます。
(PageMethodsのように) "テール"を使用するページを操作したり、ページ要素やフォームポストバックのパスを作成したりするなど、小さな問題の多くを発見しますが、問題は解決します。
興味があれば、私はコードへのリンクを投稿することができ、あなたはそれをチェックアウトすることができます。私はすでに多くの問題を解決しているので、あなたが進むにつれてそれを読むことができます。他にも多くの人がこれをやっていて、良いリソースかもしれないと確信しています。
この質問への私の answer をチェックすることをお勧めします: ASP.NET-独自のルーティングシステムの構築 。 ASP.NET MVCプロジェクトから生まれた、URL書き換えメソッドまたは使用可能な新しいルーティングエンジンを使用して、独自のルーティングシステムを構築するのに役立ついくつかの優れたリファレンスを含めます。
.Net 3.5 SP1で利用できるダイナミックデータプロジェクトは、URLルーティング実装の良い例を示しています。
IISでのURL書き換えの場合、 [〜#〜] iirf [〜#〜] はIIS5、6、7で機能します。無料です。簡単です。速い。オープンソース。正規表現のサポート。