2008-09-11 22 views
5

私はASP.Net 2.0の(比較的小さな)Webサイトを開発中です。また、実行可能ファイルを提供する前に、プロジェクトで簡単に調整を行うためにnAntを使用しています。現在の状態では、ウェブサイトは、私はIISプールは(アイドルシャットダウンやリサイクルの後に)再起動された後、アプリケーションがに占めることに気づいたASP.Netのプリコンパイルと起動時間

aspnet_compiler.exe -nologo -v ${Appname} -u ${target}

を使用して、「プリコンパイルさ」であります20秒後にオンラインに戻ります(Application_startに達すると)。

aspnet_compilerが実際にこのような良い考えであるかどうか疑問に思っているので、私はVisual Studio内で直接デバッグしているときに同じ問題は発生しません。

私はMSDNで多くを見つけることができませんでした。どのようにウェブサイトを制作するためにあなたのウェブサイトをコンパイルしますか?

答えて

4

ていることを確認してください:あなたはWebアプリケーションプロジェクトではなく、Webサイトプロジェクトを使用している

  1. 、これはあなたがにデバッグコードの生成をオフにしている
  2. の背後にある、あなたのコードのコンパイル済みのバイナリになりますweb.configファイル - あなたがそれらを試してみた場合、これはあなたがコードaspnet_compiler使用する場合に異なっている場合、私は推測するが

を再コンパイルすることができる、あなたは多分これJITの時間を節約し、あなたのアセンブリの上にNGENを実行してみてくださいだろうか?

1

これがweb.config <compilation debug=false>に設定されていることを確認してください。私の場合は、ユーザーに提供する前にすべてのメインページに対してGet要求を出すバッチファイルもあります(ページ読み込みシミュレーション)。

0

@Simon:

  • プロジェクトは、Webアプリケーションです。 Webサイトの起動が遅くなる(別のコード構成の横にあるということは考えられませんでした)?
  • aspnet_compilerが呼び出された後にweb.configを編集している間に、私はデバッグ値に触れません(Web.configに触れないと、念のため)

(そして、私は間違いなくNGENを見ているだろう、私はそのツールを認識していませんでした。)

+0

私は、サイトの事対Webアプリケーションは、実際にウィルは言及して更新可能なビットをどうするかもしれないと思う - 私のアプリケーションが更新可能とマークされていません。私はあなたが組織のことについておそらく正しいと思う、私は確認するためにもう少し遊びを持つ必要があるだろう。 –

2

あなたのウェブサイトが更新可能としてコンパイルされている場合は、の束が表示されます仮想ディレクトリ内の.ASPXファイル。これらは起動時にコンパイルする必要があります。 Web UIそのものを変更することができます。これは、WebサイトとWebアプリケーションの両方でデフォルトです。

4

究極の反応を得るには、アプリをシャットダウンしないでください。

最初の方法は信じられないほど人気が​​あるので、いつも誰かがそれを使用していることを確認することです。

また、スケジューリングされたアクティビティとして他の場所から小さなキープアライブページを取得して、サイトをホットにすることもできます。

+0

非常に大きなシステムで使用されている現実的なアプローチであるにもかかわらず、2人の人が私の答えをコメントなしで投票したことは興味深いことが分かりました。 DotNetNukeには、この目的のためにkeepalive.aspxが含まれています。 –

+0

私はそうではありませんが、これは起動時間を短縮しないので、ダウンボートがあると仮定します。さらに、ASP .Net 4.0には同じことを実現する自動起動機能が同梱されているため、これはIIS7.5/.Net 4では不要です。 – Brian

1

重要な点は、IISアプリケーションプールが決してシャットダウンされないようにすることです。これはコードが実際にホストされる場所です。誰かがあなたのサイトに1日に1回ヒットしている限り、「アイドルタイムアウト」(高度な設定で)を1440分(24時間)などの本当に高い値に設定してください。

新しいコードをデプロイするたびに、またはこのアイドルタイムアウト期間がトラフィックを超えていない場合でも、JIT時間はまだあります。

Configuring IIS 7.x Idle Timeout