asp.net アドレス マッピング - 疑似静的

asp.net アドレス マッピング - 疑似静的

asp.net アドレス マッピングの定義は、ユーザーがアクセスする仮想アドレスにマップされた実際のファイルであり、仮想アドレスは静的ページである可能性があります。 Ruli: http://fuzhou.naoqiu.com/bus のページにアクセスすると、実際には /bus.aspx のページにアクセスしていることになります。

Asp.net アドレス マッピングは、HttpModule 要求原則を通じて機能します。

httpModule の原理は何ですか?

HttpModule コンテナでの HTTP リクエストの送信プロセス中に、HTTP リクエストは特定の瞬間 (ResolveRequestCache イベント) に HttpHandler コンテナに渡されます。このイベントの後、HttpModule コンテナーは HttpHandler のエントリ インスタンスを確立しますが、この時点では HTTP 要求の制御は渡されず、AcquireRequestState イベントと PreRequestHandlerExcute イベントが引き続きトリガーされます。 PreRequestHandlerExcute イベントの後、HttpModule ウィンドウは、実際の HTTP 要求処理を実行するために、一時的に HttpHandler コンテナーに制御を渡します。

ProcessRequest メソッドは、HTTP リクエストを処理するために HttpHandler コンテナ内で実行されます。コンテナ HttpHandler は HTTP 要求全体を処理した後、制御を HttpModule に返し、HttpModule はクライアントに戻るまで、処理された HTTP 要求情報フローをレイヤーごとに転送し続けます。

ブロガーから借りた写真

原理を理解した後、簡単なアドレス マッピングを完成させます。コードは次のとおりです。

まず、アドレス マッピングの基本クラスを完成させます。

///<要約>

/// アドレス書き換え

/// </要約>

パブリック抽象クラス BaseModuleRewriter: IHttpModule

{

/// <要約>

/// 初期化呼び出し

/// </要約>

/// <param name="app"></param>

パブリック仮想void Init(HttpApplicationアプリ) {

app.BeginRequest += 新しい EventHandler(app_BeginRequest);

}

パブリック仮想 void Dispose() { }

/// <要約>

/// リクエスト開始

/// </要約>

/// <param name="送信者"></param>

/// <パラメータ名="e"></パラメータ>

保護された仮想 void app_BeginRequest(オブジェクト送信者、EventArgs e)

{

HttpApplication app = sender を HttpApplication として指定します。

書き換え(アプリ);

}

/// <要約>

/// 抽象操作メソッド

/// </要約>

/// <param name="app"></param>

保護された抽象 void Rewrite(HttpApplication app);

}

基本クラスを継承し、必要なアドレス マッピング操作を完了します。

保護されたオーバーライド void Rewrite(HttpApplication app)

{

HttpContext コンテキスト = app.Context;

HttpRequest リクエスト = app.Request;

文字列部分 = Regex.Match(request.Url.ToString(), @"(?<=http\:\/\/).*").Value.ToLower().Trim('/');

(part.IndexOf("/") == -1の場合)

{

part = Regex.Match(part, @"^\w+").Value;

スイッチ(部品)

{

case "bus": context.RewritePath("/bus.aspx"); break;

「www」の場合:

case "naoqiu": context.RewritePath("/Default.aspx"); break;

デフォルト: context.RewritePath("/Index_City.aspx"); break;

}

}

}

何かが足りないのでしょうか? はい、構成ファイルが足りません。 web.config ファイル内のいくつかの場所を変更する必要があります。コードは次のとおりです。

<!--リクエストルール-->

<httpモジュール>

<add name="BianminModuleRewriter"
タイプ="Bianmin.URLRewriter.ModuleRewriter、Bianmin.URLRewriter" />

</httpモジュール>

<システム.Webサーバー>

<ハンドラ>
<add name="aspnet_isapi" path="*" verb="*" modules="IsapiModule" script Processor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
</ハンドラ>

<デフォルトドキュメント>

<ファイル>

<クリア />

<値を追加="default.aspx" />

</ファイル>

</defaultDocument>

</system.webServer>

注意:framewore 2..0を使用する場合は、\aspnet_isapi.dllファイルパスを変更する必要があります。

ソースコードのダウンロードアドレス: http://download.naoqiu.com ダウンロード

元のタイトル: asp.net アドレス マッピング - 疑似静的

キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  ウェブサイトのユーザー利用率を効果的に高める方法

>>:  ウェブサイトタイトルの書き方の詳細説明

推薦する

未来はここにあります!分散データベースの「星の海」は、決して置き換えに限定されません。

2、3年前、分散データベースなどの技術について話すとき、この新しい技術の応用の見通しを説明するために...

ウェブサイトにはSEOが必要 SEOウェブサイト構築の基本ポイント

検索エンジンのアルゴリズムは急速に変化するため、その変化の傾向を研究するのは簡単ではありません。その...

ガートナーの調査: クラウド コンピューティングは新たなビジネス リスク

ガートナーの最新の調査によると、クラウド コンピューティングは、リスク、監査、財務、コンプライアンス...

「ヴァンパイア」AWSから始まり、オープンソースはどのように突破できるのか?

過去 10 年間、Linux や MySQL から Kubernetes、Spark、Presto、...

Qiniu Cloudは10億人民元のF資金調達ラウンドを完了し、クラウドデータの価値を高め続けています。

6月16日、サードパーティの独立系クラウドコンピューティングおよびデータサービスプロバイダーであるQ...

限定版: crissic-1g メモリ/2ip/3 コア/50g ハードディスク/3t トラフィック

Crissic が特別セールを開始しました。今回の主力商品は KVM ですが、今回は特別限定版 KV...

ウェブサイトと製品のデザイン分析: 新規ユーザー向けのユーザーガイドのデザインを再検討する

新規ユーザーのオンボーディングの設計は常に熱く議論されているトピックであり、今日ではあらゆる種類の ...

Baiduキーワードランキング急落の分析と解決策

編集者のウェブサイト「スマートホームネットワーク」を例に挙げてみましょう最近、BaiduやGoogl...

新しいサイトに内部ページが含まれない理由と解決策

新しいサイトのホームページのみが含まれており、内部ページは含まれておらず、スナップショットは更新され...

月額 18 ドルの vmiss Hong Kong AMD VPS はいかがでしょうか?評価データを見てみましょう!

vmiss vps は新しい会社ですが、過去 6 か月間で非常に人気が高まっています。vps は 1...

クラウドネイティブアプリケーションのセキュリティ組織アーキテクチャの簡単な分析

デジタル変革は無視できない力です。あらゆる業種において、企業はテクノロジー企業になることを目指してお...

トップクラスのマネージドクラウドサービスプロバイダーの選び方

マネージド クラウド サービス プロバイダー (MCSP) は通常、顧客のクラウド プラットフォーム...

峻雷企業研究報告:峻雷モデルのリスクと成長分析の再検討

1. 今回の上場によるXunleiの評価額は10億米ドル以上です。 2. Xunlei の主な収益は...

サーバー仮想化技術に関する深い知識

サーバー仮想化テクノロジーは、IBM メインフレーム仮想化 z/VM にまで遡ることができます。これ...