Web フォーム アプリケーションに URL ルーティングを使用する予定でした。しかし、いくつかの投稿を読んだ後、それが簡単なアプローチであるかどうかはわかりません.
Web フォームにはURL 書き換えモジュールを使用する方がよいでしょうか? ただし、IIS7のみです。当初、URL ルーティングが Asp.Net MVC から完全に切り離されており、Web フォームに使用できるという話題がありました。
どんな提案も聞きたい..
Web フォーム アプリケーションに URL ルーティングを使用する予定でした。しかし、いくつかの投稿を読んだ後、それが簡単なアプローチであるかどうかはわかりません.
Web フォームにはURL 書き換えモジュールを使用する方がよいでしょうか? ただし、IIS7のみです。当初、URL ルーティングが Asp.Net MVC から完全に切り離されており、Web フォームに使用できるという話題がありました。
どんな提案も聞きたい..
このトピックに関して私が見つけた最高の記事は、Ruslan Yakushev によるIIS URL Rewriting and ASP.NET routingです。
クライアントが Web サーバーに特定の URL を要求すると、URL 書き換えコンポーネントが要求された URL を分析し、同じサーバー上の別の URL に変更します。URL 書き換えコンポーネントは、要求処理パイプラインの非常に早い段階で実行されるため、Web サーバーが要求の処理に使用するハンドラーを決定する前に、要求された URL を変更できます。
ASP.NET ルーティングは、キャッシュの解決ステージ (PostResolveRequestCache イベント) およびマップ ハンドラー ステージ (PostMapRequestHandler) で IIS 要求処理パイプラインにプラグインされるマネージ コード モジュールとして実装されます。ASP.NET ルーティングは、Web アプリケーションに対して行われたすべての要求に対して実行されるように構成されています。
URL 書き換えと ASP.NET ルーティングの違い:
これらの概念上の違いに加えて、IIS の URL 書き換えと ASP.NET ルーティングにはいくつかの機能上の違いがあります。
IIS チームのメンバーからの 2 つの違いに関する素晴らしい投稿がここにあります。
WebForms の場合、Routing を使用する際には注意が必要です。これらの問題に対処し、うまくいけばあなたの質問に答えるのに役立つWebForms でルーティングを使用する方法のサンプル実装を作成しました。
フォーマットされた URL を生成ページのファクトリにしますか?
または、.aspx を削除しますか?
書き換えは、.aspx をなくすか、単に URL を整理するためのものです。
ルーティングは、リクエストを見て、それを処理するオブジェクトを決定するためのものです。それらは似ているように聞こえますが、phil haack にはこの件に関する優れた記事がいくつかあります。
iis6 の isapiRewrite は非常に優れています
最近、サイトの URL の見栄えを良くするために、独自の書き換えシステムを作成しました。基本的に、独自のIHttpModuleを作成し、それを web.config に追加して、着信要求をインターセプトする必要があります。その後、HttpContext.Current.RewritePath を使用して、指している内容を変更できます。
また、すべてに aspnet_isapi を使用するようにサイトを構成する必要があります。
「テール」を使用するページ (PageMethods など) を操作しようとしたり、ページ要素のパスやフォームのポストバックなど、途中で小さな問題がたくさん見つかりますが、それらは乗り越えることができます。
If interested, I can post a link to the code and you can check it out. I've worked a lot of the problems out already so you can read through it as you go. I'm sure there are a lot of other people that have done this as well that might be good resources as well.
この質問に対する私の回答を確認してください: ASP.NET - Building your own routing system。URL 書き換え方法または ASP.NET MVC プロジェクトから出てきた新しいルーティング エンジンを使用して、独自のルーティング システムを構築するのに役立つ参考資料をいくつか紹介します。
.Net 3.5 SP1 で利用できる Dynamic Data プロジェクトは、URL ルーティングの実装の良い例を示しています。
IIS での URL 書き換えの場合、IIRFは IIS5、6、7で動作します。無料です。簡単。速い。オープンソース。正規表現のサポート。