ASP Global.asa
Global.asa ファイル
Global.asa ファイルは、ASP アプリケーションのすべてのページからアクセスされるオブジェクト、変数、メソッドの宣言を含めることができるオプションのファイルです。
すべての合法的なブラウザ スクリプト (JavaScript、VBScript、JScript、PerlScript など) を Global.asa で使用できます。
Global.asa ファイルには次のコンテンツのみを含めることができます:
アプリケーション イベント
セッション イベント
<object>
TypeLibrary 宣言
-
#includeディレクティブ
注: Global.asa ファイルは ASP アプリケーションのルート ディレクトリに保存する必要があり、各アプリケーションは Global.asa ファイルを 1 つだけ持つことができます。
Global.asa のイベント
Global.asa では、アプリケーション/セッションの開始時に何を行うか、およびアプリケーション/セッションが終了時に何を行うかをアプリケーションとセッション オブジェクトに指示できます。このタスクを実行するコードはイベント ハンドラーに配置されます。 Global.asa ファイルには、次の 4 種類のイベントを含めることができます。
Application_OnStart - このイベントは、最初のユーザーが ASP アプリケーションの最初のページを呼び出したときに発生します。このイベントは、Web サーバーが再起動されるか、Global.asa ファイルが編集された後に発生します。このイベントの直後に「Session_OnStart」イベントが発生します。Session_OnStart - このイベントは、新しいユーザーが ASP アプリケーションで最初のページをリクエストするたびに発生します。
Session_OnEnd - このイベントは、ユーザーがセッションを終了するたびに発生します。ユーザーが指定された時間 (デフォルト時間は 20 分) 内にどのページも要求しない場合、ユーザー セッションは終了します。
Application_OnEnd - このイベントは、最後のユーザーがセッションを終了した後に発生します。通常、このイベントは Web サーバーが停止したときに発生します。このサブルーチンは、アプリケーションの停止後にレコードの削除やテキスト ファイルへの情報の書き込みなどの設定をクリアするために使用されます。
Global.asa ファイルは次のようになります:
sub Application_OnStart
'いくつかのコード
end sub
sub Application_OnEnd
'コード
end sub
sub Session_OnStart
'いくつかのコード
end sub
sub Session_OnEnd
'いくつかのコード
end sub
</script>
注: Global.asa ファイルには ASP のスクリプト区切り文字 (<% と %>) を使用してスクリプトを挿入できないため、HTML の <script> 要素内にサブルーチンを配置する必要があります。
<object> 宣言
は、<object> タグを使用して、Global.asa ファイル内にセッション スコープまたはアプリケーション スコープを持つオブジェクトを作成できます。
注: <object> タグは <script> タグの外側にある必要があります。
構文
....
</object>
パラメータ | 説明 |
---|---|
スコープ | を設定しますオブジェクト (セッションまたはアプリケーション) のスコープ。 |
id | オブジェクトの一意の ID を指定します。 |
ProgID | ClassID に関連付けられた ID。 ProgID の形式は、[Vendor.]Component[.Version] です。 ProgID または ClassID を指定する必要があります。 |
ClassID | COM クラス オブジェクトの一意の ID を指定します。 ProgID または ClassID を指定する必要があります。 |
インスタンス
最初のインスタンスは、ProgID パラメーターを使用して、「MyAd」という名前のセッション スコープ オブジェクトを作成します:
</object>
2 番目のインスタンスは、ClassID パラメーターを使用して、「MyConnection」という名前のアプリケーション スコープ オブジェクトを作成します。
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>
Global.asa ファイルで宣言されたオブジェクトは適用可能 プログラム内の任意のスクリプト使用:
<object runat="server"scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>
ASP アプリケーションの任意のページから「MyAd」オブジェクトを参照できます:
.ASP ファイル:
<%=MyAd.GetAdvertising ( "/banners/adrot.txt")%>
TypeLibrary 宣言
TypeLibrary (タイプライブラリ) は、COM オブジェクトに対応する DLL ファイルを保持するコンテナです。 Global.asa ファイルに TypeLibrary への呼び出しを含めることで、COM オブジェクトの定数にアクセスできるようになり、ASP コードでエラーをより適切に報告できるようになります。 Web アプリケーションがタイプ ライブラリで宣言されたデータ型の COM オブジェクトに依存している場合は、Global.asa でタイプ ライブラリを宣言できます。
構文
file="ファイル名" uuid="id" バージョン="番号" lcid="localeid"
-->
パラメータ | 説明 |
---|---|
file | タイプ ライブラリへの絶対パスを指定します。 file パラメータまたは uuid パラメータ、両方とも必須です。 |
uuid | は、タイプ ライブラリの一意の識別子を指定します。 file パラメータまたは uuid パラメータ、両方とも必須です。 |
バージョン | はオプションです。バージョンを選択するために使用します。必要なバージョンが見つからない場合は、最も近いバージョンが使用されます。 |
lcid | オプション。タイプ ライブラリに使用されるロケール識別子。 |
エラー値
サーバーは次のいずれかのエラーメッセージを返します:
エラーコード | 説明 |
---|---|
ASP 0222 | タイプライブラリの指定が無効です |
ASP 0223 | タイプが見つからないライブラリ |
ASP 0224 | タイプライブラリをロードできません |
ASP 0225 | タイプライブラリをラップできません |
注: METADATA タグは、Global.asa ファイル内のどこにでも (<script> タグの内側または外側) に表示できます。ただし、METADATA タグを Global.asa ファイルの先頭に配置することをお勧めします。
制限事項
Global.asa ファイルで参照できるものの制限:
Global.asa ファイル内のテキストを表示することはできません。このファイルには情報を表示できません。
サーバー オブジェクトとアプリケーション オブジェクトは、Application_OnStart および Application_OnEnd サブルーチンでのみ使用できます。 Session_OnEnd サブルーチンでは、Server、Application、および Session オブジェクトを使用できます。 Session_OnStart サブルーチンでは、任意の組み込みオブジェクトを使用できます。
サブルーチンの使用方法
Global.asa は変数の初期化によく使用されます。
次の例は、訪問者が最初に Web サイトに到着した正確な時刻を検出する方法を示しています。時刻は「started」という名前の Session オブジェクトに保存され、「started」変数の値はアプリケーション内の任意の ASP ページからアクセスできます:
sub Session_OnStart
Session("started")=now()
end sub
</script>
Global.asa は、ページ アクセスの制御にも使用できます。
次の例は、各新規訪問者を別のページ (この場合は「newpage.asp」という名前のページ) にリダイレクトする方法を示しています。
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>
Global.asa ファイルに関数を含めることができます。
以下の例では、Web サーバーが起動すると、Application_OnStart サブルーチンも起動します。次に、Application_OnStart サブルーチンは、「getcustomers」という名前の別のサブルーチンを呼び出します。 「getcustomers」サブルーチンはデータベースを開き、「customers」テーブルからレコードセットを取得します。このレコード セットは配列に割り当てられており、どの ASP ページもデータベースにクエリを実行せずにこの配列にアクセスできます:
sub Application_OnStart
getcustomers
end sub
sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn .execute("顧客から名前を選択")
Application("顧客")=rs.GetRows
rs.Close
conn.Close
end sub
</script>
Global.asa の例
この例では、現在の訪問者数を計算する Global.asa ファイルを作成します。
サーバーが起動すると、Application_OnStart はアプリケーション変数「visitors」の値を 0 に設定します。
新しい訪問者が来るたびに、Session_OnStart サブルーチンは変数「visitors」に 1 を加えます。
Session_OnEnd サブルーチンがトリガーされるたびに、サブルーチンは変数「visitors」を 1 ずつ減らします。
Global.asa ファイル:
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStart
Application。 Lock
Application("訪問者")=Application("訪問者")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("訪問者")=Application("訪問者")-1
Application .UnLock
End Sub
</script>
ASP ファイルで、現在の訪問者数を表示します:
<html>
<head>
</head>
<body>
<p><%response.write(Application("visitors"))%>があります; オンライン中!</p>
</body>
</html>