1

私は、コンテンツタイプヘッダーに基づいてCSS、JS、およびHTMLファイルをクリーンアップ、圧縮、および最小化するHTTPモジュールを持っています。それは私のステージング環境とローカルホスト(ISS7、クラシックパイプラインモード)でうまく機能します。IIS 6(本番)では、信頼性がありません。散発的に、この静的ファイルはasp.netによる処理を停止し、デフォルトのIISハンドラーに戻っているように見えます。web.configに触れるか、IISRESETを実行すると、しばらくの間、正常に動作し始めます。モジュールがこの「奇抜な状態」になった場合でも、.aspxファイルは期待どおりにモジュールを実行しています。したがって、モジュールは問題ではなく、私たちが見ているのはIISの問題であると私はかなり確信しています。

  1. すべての動詞に対してaspnet_isapi.dllによって処理されるように、IIS 6にマップされたHTML、JS、およびCSSファイルがあります。
  2. 私のweb.configでは、これらの静的ファイルを、すべての動詞のハンドラーセクションでSystem.Web.StaticFileHandlerによって処理されるように設定しました。
  3. HTTPモジュールはweb.configにも接続されています。

何か案は?とりあえず、本番WebサーバーをIIS7にアップグレードすることは避けたいです。

4

2 に答える 2

1

問題は HttpModule にあると確信しています。おそらく、問題はスレッドの問題である可能性があります。HttpModule はすべてのリクエストに対して 1 回だけインスタンス化されるため、データをクラスのメンバー変数に格納すると、複数のスレッドが同じデータに同時にアクセスするという問題が発生します。

ところで、あなたの問題に対する別の解決策を提案したいと思います。MSBuild などを使用してビルド スクリプトを作成し、ビルド スクリプトでファイルを圧縮します。

于 2009-08-28T15:58:11.700 に答える
0

開発と本番の大きな違いは、トラフィックの量です。

ボリュームは、トラフィックの少ない開発テストでは発生しない同時実行の問題を浮き彫りにすることができます。

コードにスレッドの問題などがないことを確認してください。

于 2009-08-28T13:42:33.653 に答える