3

私は自分が間違っていることや理解していないことを理解しようとしています。Web アプリケーションといくつかのクラス ライブラリを使用したソリューションがあります。

Web プロジェクトの Web アプリ公開設定を編集しました。「公開する前にこのアプリケーションをプリコンパイルする」がチェックされており、「このアプリケーションを実行するために必要なファイルのみ」を選択しました。

フォルダーにダンプするだけの公開プロファイルを作成しました。そのフォルダーから (FTP を使用して) DLL をステージング サイトにアップロードします。ここで、アプリをライブで展開する前に最終テストを行います。DLL をアップロードしてステージング サイトに移動した後も、アプリの起動にまだ遅延があり、これも同様に遅いように見えます。それはプリコンパイルすることでなくなるはずではないですか?

編集:サイトを更新可能にすることをオフにすると、問題が解決します。更新可能にすると、すべての ASPX ページとユーザー コントロールが最初のページ ビューでコンパイルされ、コード ビハインドがコンパイルされても遅延が発生します。バッチ コンパイルを無効にして、web.config で optimizeCompilations をオンにすると、高速になりました。

<compilation batch="false" optimizeCompilations="true" />
4

4 に答える 4

3

多分あなたはdebug=True設定で設定を残しましたか?

これにより、特にバッチ コンパイルとキャッシュが無効になります (ただし、キャッシュは起動時間には影響しません)。

詳細については、こちらこちらを参照してください。

于 2013-03-03T15:23:09.897 に答える
0

どのフレームワークバージョンを使用していますか?.Net 3.5(特に)を使用している場合は、次の使用を検討する必要があります。

<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false"/>
    </runtime>
</configuration>

コールドスタート時間の約半分になります。ただし、IISがアプリケーションでコールドスタートを実行すると、初期遅延が発生することが既知の問題です。これは、アプリケーションをデプロイする場合だけでなく、アプリケーションプールがリサイクルされる場合にも当てはまります。

これまでのところ、私が考えることができる最善のオプションは、定期的に(たとえば、1分ごとに)サイトを自動的にスピンアップ(ウォームアップ)するスケジュールされたスクリプトを作成することです。

于 2013-03-03T16:17:21.067 に答える