質問

Web フォーム アプリケーションに URL ルーティングを使用する予定でした。でも、いくつか読んでみると、 投稿, それが簡単なアプローチであるかどうかはわかりません。

を使用した方が良いですか? URL書き換えモジュール Webフォーム用?ただし、IIS7のみです。当初、URL ルーティングが Asp.Net MVC から完全に分離されており、Web フォームに使用できるという話題がありました。

何かご提案がございましたらぜひお聞かせください。

役に立ちましたか?

解決

あります ここに素晴らしい投稿があります 2 つの違いについて IIS チームのメンバーから説明を受けました。

注意点の 1 つは、Web フォームの場合、ルーティングを使用するときに注意する必要があるということです。使用方法のサンプル実装を書きました Webフォームを使用したルーティング これはこれらの懸念を解決し、あなたの質問の答えに役立つことを願っています。

他のヒント

これは、このトピックに関して私が見つけた最高の記事です。 IIS URL書き換えとASP.NETルーティング ルスラン・ヤクシェフ著。

IIS URL書き換え

クライアントが Web サーバーに特定の URL を要求すると、URL 書き換えコンポーネントが要求された URL を分析し、同じサーバー上の別の URL に変更します。URL 書き換えコンポーネントは、要求処理パイプラインの非常に早い段階で実行されるため、Web サーバーが要求の処理に使用するハンドラーを決定する前に、要求された URL を変更できます。

IIS URL Rewriting

ASP.NETルーティング

ASP.NET ルーティングは、キャッシュの解決ステージ (PostResolveRequestCache イベント) およびマップ ハンドラー ステージ (PostMapRequestHandler) で IIS 要求処理パイプラインにプラグインされるマネージ コード モジュールとして実装されます。ASP.NET ルーティングは、Web アプリケーションに対して行われたすべての要求に対して実行されるように構成されています。

IIS URL Routing

URL 書き換えと ASP.NET ルーティングの違い:

  1. URL 書き換えは URL パスを操作するために使用されます リクエストが Web サーバーによって処理される前. 。URL 書き換えモジュールは、書き換えられた URL を最終的にどのハンドラーが処理するかについては何も知りません。さらに、実際のリクエスト ハンドラーは、URL が書き換えられたことを認識していない可能性があります。
  2. ASP.NET ルーティングは次の目的で使用されます。 要求された URL パスに基づいてハンドラーに要求をディスパッチします。. 。URL 書き換えとは対照的に、ルーティング コンポーネントはハンドラーについて認識しており、要求された URL に対する応答を生成するハンドラーを選択します。ASP.NET ルーティングは、高度なハンドラー マッピング メカニズムと考えることができます。

これらの概念的な違いに加えて、IIS URL 書き換えと ASP.NET ルーティングの間には機能的な違いがいくつかあります。

  1. IIS URL 書き換えモジュールは、ASP.NET、PHP、ASP、静的ファイルなど、あらゆる種類の Web アプリケーションで使用できます。ASP.NET ルーティングは、.NET Framework ベースの Web アプリケーションでのみ使用できます。
  2. IIS URL 書き換えモジュールは、アプリケーション プールに統合 IIS パイプライン モードが使用されているかクラシック IIS パイプライン モードが使用されているかに関係なく、同じように動作します。ASP.NET ルーティングの場合は、統合パイプライン モードを使用することをお勧めします。ASP.NET ルーティングはクラシック モードでも動作しますが、その場合はアプリケーションの URL にファイル拡張子を含めるか、IIS で "*" ハンドラー マッピングを使用するようにアプリケーションを構成する必要があります。
  3. URL 書き換えモジュールは、ドメイン名、HTTP ヘッダー、およびサーバー変数に基づいて書き換えの決定を行うことができます。デフォルトでは、ASP.NET ルーティングは URL パスと HTTP-Method ヘッダーでのみ機能します。
  4. URL 書き換えモジュールは、書き換えに加えて、HTTP リダイレクトを実行し、カスタム ステータス コードを発行し、リクエストを中止することができます。ASP.NET ルーティングはこれらのタスクを実行しません。
  5. URL 書き換えモジュールは、現在のバージョンでは拡張できません。ASP.NET ルーティングは完全に拡張可能でカスタマイズ可能です。

フォーマットされた URL をページ生成のファクトリーにしますか?

それとも .aspx を廃止しますか?

書き換えは、.aspx を削除するか、単に URL を整理するためです。

ルーティングは、リクエストを調べて、どのオブジェクトがそれを処理すべきかを決定するために行われます。似ているように聞こえますが、phil haack がこのテーマに関する優れた記事をいくつか掲載しています。

iis6 の isapiRewrite は非常に優れています

最近、サイトの URL の見栄えを良くするために独自の書き換えシステムを作成したところです。基本的には自分で書く必要があります IHttpモジュール それを web.config に追加して、受信リクエストをインターセプトします。その後、HttpContext.Current.RewritePath を使用して、ポイントしているものを変更できます。

サイトを次のように構成することもできます。 すべてにaspnet_isapiを使用してください.

途中で、「テール」を使用するページ (PageMethods など) を操作しようとしたり、ページ要素とフォームのポストバックのパスを指定したりするなど、小さな問題がたくさん見つかりますが、それらは乗り越えられます。

興味があれば、コードへのリンクを投稿しますので、チェックしてみてください。すでに多くの問題を解決しているので、読み進めてください。他にも同様のことを行っている人がたくさんいると思いますが、それも良いリソースとなるでしょう。

私のことをチェックしてみてはいかがでしょうか 答え この質問に対して: ASP.NET - 独自のルーティング システムの構築. 。URL 書き換えメソッドまたは ASP.NET MVC プロジェクトから生まれた新しいルーティング エンジンを使用して、独自のルーティング システムを構築するのに役立つ参考資料をいくつか紹介します。

.Net 3.5 SP1 で利用可能な Dynamic Data プロジェクトは、URL ルーティング実装の良い例を示しています。

IIS での URL 書き換えの場合、 IIRF IIS5、6、7で動作します。無料。簡単。速い。オープンソース。正規表現のサポート。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top