2

これは理解できたと思いましたが、昨日の制作上の問題で理解に疑問が生じました。

コンパイルをバッチ処理するのではなく、アクセス時にASP.NETにページをコンパイルさせます。週末に展開を行い、テストを実行してすべてのページにアクセスするため、これは通常は問題になりません。そのため、月曜日の朝はすべてがおかしなことになります。

この先週末の展開を除いて。テストでたくさんのページを見逃したので、それらはすべて昨日の本番時間中にコンパイルされました。#compilationsのPerfCountersは100に達し、#applicationの再起動は8でした。しかし、実行中のアプリケーションの数も8であり、通常は1つです。

ASP.NETは、コンパイルのしきい値に達した後にアプリケーションを再起動し、再起動された「バージョン」が引き継ぐためにシャットダウンする前に、要求が完了するのに十分な時間「古い」アプリケーションを存続させたと思いました。そうですか?アプリケーションの古い再起動された「バージョン」がまだ実行されていた可能性はありますか?

実行中のアプリケーションが多すぎることに加えて、8つのアプリすべてが独立して実行しているように、大量のメモリとSQLのスラッシングが発生しました。

一晩再起動し、すべてがコンパイルされ、今朝は1つのアプリが実行されていてすべてが正常に見えることを確認しました。

この動作を変更する4.0の何かがありますか?

4

0 に答える 0