この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14502|答える: 0

[ASP.NET] Styles.RenderはrunAllManagedModulesForAllRequests=trueの思考を引き起こします

[リンクをコピー]
掲載地 2016/10/13 15:02:09 | | |
前回の記事では、まだ解決されていないもう一つのレガシー問題があります。それは、MVC MapRoute .htmが動作しない ASP.NET、runAllManagedModulesForAllRequests="true"を使わない場合にどう解決すればよいのでしょうか? 後で解決策を見つけました:



参考文献:ASP.NET MVC:.htmlリクエストをMVCルートにルーティングする

runAllManagedModulesForAllRequests="true"を使わない方がいい理由を説明し、その後関連する記事を2つ見つけました:

シンプルさの技術:ウェブアプリケーションのパフォーマンスを最適化する:runAllManagedModulesForAllRequests="true"は使わないでください。
MVCルーティングを動作させる際にrunAllManagedModulesForAllRequests="true"は使わないでください
本文の記述からの抜粋:

この強く推奨される修正は他の問題を引き起こす可能性があります。 これらの問題は、登録済みのHTTPモジュールがすべてのリクエストで動作し、管理されたリクエスト(例:.aspx)だけでなく、すべてのリクエストで動作させるという形で現れます。 つまり、モジュールはすべての.jpg .gif .css .html .pdfで動作するということです。

runAllManagedModulesForAllRequests は IIS モジュールやリクエストのチャネルスイッチのようなもので、このスイッチをオンにすると、このサイトにアクセスするすべてのリクエストはモジュールに入り処理されます。これには静的ファイルリクエストも含まれます。これは「処理不要」リクエストの最も一般的なタイプでもあります。なぜならリクエストはモジュールに入るため、対応するプログラムが必要だからです。 これにより不必要なパフォーマンスオーバーヘッドが生じます。なぜなら静的ファイルは表示用であり、モジュール処理は全く必要ありません。小さなサイトは問題ありません。大規模なPVサイトが同じことをすると、IISのモジュールプログラム処理に「プレッシャー」がかかるため、上記のブログ記事でまとめた結論は無駄(無駄...) )およびポテンシャル(ポテンシャル... )。

runAllManagedModulesForAllRequestsの異なる構成でどのリクエストがログされているかをApplication_BeginRequestでテストし、サンプルコードをテストしましょう:


runAllManagedModulesForAllRequests="fasle", data.txt log:
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1

runAllManagedModulesForAllRequests="true", data.txt record:

http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1
http://localhost:55127/Content/logo_small_1.gif
http://localhost:55127/Content/logo_small_4.gif
http://localhost:55127/Content/logo_small_2.gif
http://localhost:55127/Content/logo_small_3.gif

logo_small_* 画像はビューに追加したもので、これは静的画像のテストリクエストです。大規模なサイトでリクエストテストコードを追加し、ページを更新すると意味のないリクエストが多いことがわかります。 上記のテスト記録を見れば問題の説明はできていないかもしれませんが、例えば静的ファイルが多く、訪問数が数千万回に達し、ページ数が多いサイトの場合、小さな問題でも無限に拡大され、最終的には単なる設定の問題だとわかります。

もういい、コードを変える。





先の:C#辞書キーでソート
次に:asp.net MVC経路における静的リソースへのアクセス
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com