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" </httpモジュール> <システム.Webサーバー> <ハンドラ> <デフォルトドキュメント> <ファイル> <クリア /> <値を追加="default.aspx" /> </ファイル> </defaultDocument> </system.webServer> 注意:framewore 2..0を使用する場合は、\aspnet_isapi.dllファイルパスを変更する必要があります。 ソースコードのダウンロードアドレス: http://download.naoqiu.com ダウンロード 元のタイトル: asp.net アドレス マッピング - 疑似静的 キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化 |
海外メディアFudzillaによると、Intelは今年第3四半期に、非常に類似したアーキテクチャを持...
[51CTO.com からのオリジナル記事] 歴史を振り返ると、世界経済に大きな転換点があるたびに、...
最近、IDCが発表した「中国のソフトウェア定義ストレージおよびハイパーコンバージド市場追跡調査レポー...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますニュース ...
最適化の方法はサイトの種類によって異なります。しかし、著者は、誰もが百度百科事典の最適化方法に夢中に...
タオバオ連盟の前身はアリババグループ傘下のアリママ連盟で、中国最大の電子商取引広告連盟です。タオバオ...
最近のHost Review Networkのドメイン名価格比較ツールからのデータフィードバックから...
最近、WeChatパブリックアカウント所有者数名が、自分たちが運営するWeChatパブリックサブスク...
クリエイティブな製品のフラッシュセールサイトであるFab.comは、ヨーロッパでの1周年を記念して、...
2012年1月のcomScoreのレポートによると、Bingの現在の米国における市場シェアは、201...
2018年WeChatモーメンツミニゲーム特別イベントが北京で開催されました。WeChatミニゲーム...
ネットワーク環境がますます複雑になるにつれて、従来の HTTP プレーンテキスト伝送プロトコルによっ...
FAQ を参考にしてクラウド コンピューティングの基礎を学び、さまざまな種類のクラウド プラットフォ...
IDC の最新の予測によると、2020 年の IT 支出は 5.1% 減少する一方で、クラウド サー...
[[413891]]この記事はWeChatの公開アカウント「プログラマーの成長」から転載したもので、...