2

アプリケーションの web.config で ExecutionTimeout 要素を設定する際に問題が発生しています。

私のページは長い Web サービス呼び出しを行っており、110 秒後にタイムアウトします。(私が信じているデフォルト)。値を 220 に設定し、コンパイルが debug=false であることを確認します。

コンパイル設定は、クライアントが要求したときに IIS/ASP.net が ASPX ページをコンパイルするときを指しますか、それともアセンブリが作成されるビジュアル スタジオのコンパイル プロセスを指しますか。

Visual Studio でデバッグを使用してビルドされたアセンブリを使用しても、上記の設定は機能しますか?

4

3 に答える 3

2

IIS は、要求されたときに aspx ページをコンパイルしません。VS に「Web アプリケーション プロジェクト」がある場合は、展開する前にすべてのコード ビハインドとその他のクラス ファイルをコンパイルします。VS に「Web サイト プロジェクト」がある場合、Web サーバーは最初の要求でのみアプリをコンパイルします。これらのいずれかが発生した後、変更を行うまで、アプリケーションは再度コンパイルされません。

上記の情報を念頭に置いて、これはコンパイル debug = true | 偽が登場します。debug = true を使用すると、エラーやその他のイベントに関するかなり詳細な情報が返されますが、デバッグ シンボルが .dll に挿入され、全体的にパフォーマンスが最適化されていないため、アプリの実行が遅くなる可能性があります。debug = false を設定すると、まったく同じレベルのエラー レポートは得られませんが、パフォーマンスの向上は得られます。

VS でビルドする場合、含める外部 .dll/class プロジェクトでない限り、web.config の設定に従ってビルドされます。その場合、web.config 設定はその .dll にとって何の意味もなく、これら 2 つのプロジェクトで debug = false|true の組み合わせに関係なく実行されます。

于 2010-06-23T13:09:50.287 に答える
1

コンパイル タグは、IIS または Visual Studio によるコンパイル用の参照ライブラリを追加し、デバッグおよびバッチ コンパイル モードを指定するために使用されます。

debug属性といえば、Milan Negovan ブログのすべての詳細を含む良い記事です。

そしてコンパイル自体について。

コンパイルには 3 つのモードがあります。それらについては、MSDN の概要で詳しく説明されています。

デフォルトでは、Web アプリケーションは更新可能なプリコンパイルを使用します。すべての.csファイルは 1 つのアセンブリにコンパイルされますが、すべてのページ、コントロール、およびマスター ページはオンデマンドで新しい派生クラスにコンパイルされます。

Web サイト プロジェクトは、既定でインプレース コンパイルを使用します。

また、更新不可能な完全なプリコンパイルを明示的に指定する必要があります。ここでcompilationタグが入ってくるとbatch="true"、アプリケーション内のすべてのページは、任意のページへの最初のリクエスト時にコンパイルされます。これにより、大規模なアプリケーションに関するさらに別の話に移ります :)

コンパイル モデルには他にもいくつかの仕様があることに注意してください。本当に必要な場合は、ASP.NET プリコンパイルの概要を調べてください。

于 2010-06-23T13:45:32.987 に答える
0

IIS は、最初に要求されたときに ASPX ページ (および ASCX UserControls、ASHX、ASMX など) をコンパイルします。また、動的にコンパイルします。

  • App_Code フォルダー内のコード

  • Web サイト プロジェクトのコード ビサイド ページのコード

web.config のコンパイル要素は、このコンパイルを参照します。

Visual Studio で Web アプリケーション プロジェクトを使用している場合、ASPX ページには分離コード ファイルがあります。これは、プロジェクトが Visual Studio でビルドされるときに DLL にコンパイルされ、web.config コンパイル要素の影響を受けません。

于 2010-06-23T13:24:40.377 に答える