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 アドレス マッピング - 疑似静的 キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化 |
2、3年前、分散データベースなどの技術について話すとき、この新しい技術の応用の見通しを説明するために...
検索エンジンのアルゴリズムは急速に変化するため、その変化の傾向を研究するのは簡単ではありません。その...
ガートナーの最新の調査によると、クラウド コンピューティングは、リスク、監査、財務、コンプライアンス...
過去 10 年間、Linux や MySQL から Kubernetes、Spark、Presto、...
6月16日、サードパーティの独立系クラウドコンピューティングおよびデータサービスプロバイダーであるQ...
Crissic が特別セールを開始しました。今回の主力商品は KVM ですが、今回は特別限定版 KV...
新規ユーザーのオンボーディングの設計は常に熱く議論されているトピックであり、今日ではあらゆる種類の ...
編集者のウェブサイト「スマートホームネットワーク」を例に挙げてみましょう最近、BaiduやGoogl...
新しいサイトのホームページのみが含まれており、内部ページは含まれておらず、スナップショットは更新され...
vmiss vps は新しい会社ですが、過去 6 か月間で非常に人気が高まっています。vps は 1...
デジタル変革は無視できない力です。あらゆる業種において、企業はテクノロジー企業になることを目指してお...
マネージド クラウド サービス プロバイダー (MCSP) は通常、顧客のクラウド プラットフォーム...
1. 今回の上場によるXunleiの評価額は10億米ドル以上です。 2. Xunlei の主な収益は...
サーバー仮想化テクノロジーは、IBM メインフレーム仮想化 z/VM にまで遡ることができます。これ...
国内事業者のpycloudsは昨年設立され、米国cn2 gia vps、トンネルVPS(米国、香港、...