GLOBAL.ASA | |
本章の
|
GLOBAL.ASA:コメントおよびトラブルシューティング | |
アプリケーションの この間実行中のセッションは、 独自の 最後に、Web アプリケーション内の他のすべてのスクリプトと同様に、Windows NT のセキュリティを使用して、 |
アプリケーションオブジェクトイベントおよびアプリケーションスコープ | |
<SCRIPT LANGUAGE=strLangEngine RUNAT = SERVER> Sub Application_OnStart Event procedure code... End Sub Sub Application_OnEnd Event procedure code... End Sub </SCRIPT> | |
<SCRIPT LANGUAGE=strLangEngine RUNAT = SERVER> Sub Application_OnStart Event procedure code... End Sub Sub Application_OnEnd Event procedure code... End Sub </SCRIPT>
「Application オブジェクト」の章で説明されている情報を確認すると、ASP アプリケーションは、仮想ディレクトリ内のすべてのファイル、およびその仮想ディレクトリ下のサブフォルダ内のすべてのファイルから構成されていることになります。変数またはオブジェクトにアプリケーションスコープがある場合、アプリケーションの現在のすべてのユーザーに対して同じ値を保持し、任意のユーザーがアプリケーションスコープの変数またはオブジェクトの値を変更できます。このような変更は、それ以降任意のユーザーが表示する値に反映されます。 |
|
パラメータ | |
|
|
例 | |
[Excerpt from GLOBAL.ASA] <OBJECT RUNAT=Server SCOPE=Application ID=AppInfo1 PROGID="MSWC.MyInfo"> </OBJECT> <SCRIPT LANGUAGE = "VBScript" RUNAT="Server"> Sub Application_OnStart Dim objCounters Dim gdatAppStartDate ' The following object variable will hold a Counters ' component. Set objCounters = Server.CreateObject("MSWC.Counters") ' The following application-level variable will ' hold the start date of the application. gdatAppStartDate = Date( ) End Sub Sub Application_OnEnd ' The following code destroys the application-scoped ' Counters component. Set objCounters = Nothing ' The following clears the application-level variable. gdatAppStartDate = " ' NOTE: This code is not strictly necessary in this ' instance as this object and variable will be released ' from memory by the web server itself when the application ' ends. This example simply demonstrates how these event ' procedures work. For suggestions for the Application ' object's use, see the following and Chapter 4. End Sub </SCRIPT> |
|
メモ | |
次に、 Application オブジェクトのイベントプロシージャに関する追加メモについては、第 4 章を参照してください。 |
|
セッションオブジェクトイベントおよびセッションスコープ | |
<SCRIPT LANGUAGE=strLangEngine RUNAT = SERVER> Sub Session_OnStart Event procedure code... End Sub Sub Session_OnEnd Event procedure code... End Sub </SCRIPT> | |
<SCRIPT LANGUAGE=strLangEngine RUNAT = SERVER> Sub Session_OnStart Event procedure code... End Sub Sub Session_OnEnd Event procedure code... End Sub </SCRIPT>
|
|
パラメータ | |
|
|
例 | |
[Excerpt from GLOBAL.ASA] <OBJECT RUNAT=Server SCOPE=Session ID=Tool1 PROGID="MSWC.Tools"> </OBJECT> <SCRIPT LANGUAGE = "VBScript" RUNAT="Server"> Sub Session_OnStart Dim strLogonUser Dim StrUserSecurity ' The following session-level variables will hold ' the user's logon name and security clearance. strLogonUser = Request.ServerVariables("USER_LOGON") strUserSecurity = "PUBLIC" End Sub Sub Session_OnEnd ' The following code destroys the session-scoped ' Tools component. Set Tool1 = Nothing ' The following clears the session-level variables. strLogonUser = " strUserSecurity = " ' NOTE: This code is not strictly necessary in this ' instance as this object and variable will be released ' from memory by the web server itself when the session ' ends. This example simply demonstrates how these event ' procedures work. For suggestions for the Application ' object's use, see later in this chapter and Chapter 10. End Sub </SCRIPT> |
|
メモ | |
Session オブジェクトのイベントプロシージャに関するメモについては、第 10 章を参照してください。 |
|
タイプライブラリの宣言 | |||||||||||
<!-- METADATA TYPE="TypeLibrary" FILE="FileName" UUID="TypeLibraryUUID" VERSION="MajorVersionNumber.MinorVersionNumber" LCID="LocaleID" --> | |||||||||||
<!-- METADATA TYPE="TypeLibrary" FILE="FileName" UUID="TypeLibraryUUID" VERSION="MajorVersionNumber.MinorVersionNumber" LCID="LocaleID" --> タイプライブラリは、COM オブジェクトのプロパティとメソッドに関する情報を保持するアクセサリファイルです。これらのファイルは、オブジェクトが使用する定数、および許容可能なプロパティ値のデータタイプを記述します。タイプライブラリを使用すると、アプリケーションでは、タイプライブラリが対応するオブジェクトの使用時の エラーをより正確に報告できます。オブジェクトの DLL で定義されている定数を使用することもできます。これにより、オブジェクトのコードの複雑さが大幅に低減され、すべてのオブジェクトに対して保守が困難なサーバーサイドインクルードを作成し使用しなくても、コードの読みやすさと再利用性が増大します。 ご存知のように、 |
|||||||||||
パラメータ | |||||||||||
|
|||||||||||
例 | |||||||||||
[Excerpt from GLOBAL.ASA] <!-- METADATA TYPE="TypeLibrary" FILE="Report.LIB" VERSION="1.5" LCID="1306" --> |
|||||||||||
メモ | |||||||||||
このコードは、バージョン 1.5 の Report COM オブジェクトのタイプライブラリの使用を宣言しています。使用する LCID はフランス語の LCID です。バージョン 1.5 のこの COM オブジェクトのタイプライブラリがないか、タイプライブラリでフランス語用の LCID 1306 がサポートされていない場合、エラーが発生します。 ASP アプリケーション内からタイプライブラリを使用する場合、実際には折り返しでカプセル化したタイプライブラリのバージョンを使用することになります。IIS では、背景でタイプライブラリに対してこの折り返しを作成します。 コーディングスタイルとしては、Microsoft では、タイプライブラリの宣言を 1 つの ASP アプリケーションの複数の COM オブジェクトからタイプライブラリを使用する際の問題の 1 つに、オブジェクト内の定数の冗長性があります。特に、その COM オブジェクトが異なるデベロッパーによって作成されている場合にそれが当てはまります。この冗長性を回避するには、定数を参照する際、COM オブジェクト自身の名前を定数名の接頭辞として使用します。たとえば、ADODB タイプライブラリの adStoredProcedure 定数は、ADODB.adStoredProcedure として参照できます。 最後に、タイプライブラリを不正に宣言した場合、 Web サーバーから次の表に示すエラーのいずれかが返される可能性があります。
|
|||||||||||