什麼是global.asa?概念、怎麼運作的
網絡百科全書中global.asa文件的定義。
什麼是 global.asa?
Global.asa 是在 Microsoft Internet Information Server 或 Internet Information Services 上執行的 Active Server Pages (ASP) 應用程式中使用的檔案,其中包含應用程式中所有頁面的全域資訊。Global.asa 不會產生用戶端 Web 瀏覽器可見的內容 — 伺服器會忽略 global.asa 檔案中的任何超文本標籤語言 (HTML)。
全球.asa
global.asa 檔案可以包含使用 <OBJECT> 標籤的物件宣告、應用程式所使用 COM 元件的類型程式庫宣告,以及應用程式和會話事件。每個 ASP 應用程式只能有一個 global.asa 檔案。
Global.asa 檔案只能包含下列內容:
ASP 內建物件事件 (Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 各一個)
OBJECT 宣告
TypeLibrary 宣告
如果您包含未以 <SCRIPT> 標籤括住的 Script,或定義沒有階段作業或應用程式範圍的物件的 Script,則伺服器會傳回錯誤。伺服器會忽略應用程式或工作階段事件未使用的標記腳本,以及檔案中的任何 HTML。
Global.asa 檔案中包含的腳本可以使用任何支援的腳本語言撰寫。如果多個事件或物件指令碼使用相同的指令碼語言,則可以將它們組合在一組<SCRIPT>標籤內。
當您儲存對 Global.asa 檔案的變更時,伺服器會先完成處理所有目前的應用程式要求,然後再重新編譯 Global.asa 檔案。在此期間,伺服器會拒絕其他要求,並傳回錯誤訊息,指出重新啟動應用程式時無法處理要求。
處理完所有現行使用者要求之後,伺服器會刪除所有作用中階段作業,針對它刪除的每一個階段作業呼叫Session_OnEnd事件、關閉應用程式,並呼叫Application_OnEnd事件。然後重新編譯 Global.asa 檔案。後續的使用者要求會啟動應用程式並建立新的工作階段,並觸發Application_OnStart和Session_OnStart事件。
Global.asa 檔案中宣告的程序只能從與 Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相關聯的一或多個腳本呼叫。它們不適用於 ASP 型應用程式中的 ASP 頁面。
若要在應用程式之間共用程序,您可以在個別的 ASP 檔案中宣告程序,然後使用 Server.Transfer 方法和 Server.Execute 方法。您也可以使用伺服器端併入 (SSI) 陳述式,將檔案併入呼叫程序的 ASP 頁面中。
Tips
如果您的 global.asa 檔案產生錯誤,您應該確定檔案內的任何物件宣告都具有應用程式層級或工作階段層級範圍,檔案中的任何指令碼都包含在 <SCRIPT> 標籤內,而且任何 <OBJECT> 標籤都放置在 <SCRIPT> 標籤之外。
NOTE
若要提高網頁伺服器的安全性,請勿將敏感資料儲存在併入檔案中。如果您確實將敏感性資料儲存在包含檔案中,請將 .inc 副檔名的 IIS 腳本對應從 ssinc.dll 變更為 asp.dll,以便在傳遞無效字元時 ASP 擲回例外狀況。在 ASP 應用程式中使用 #include 的替代方案是 Server.Transfer 方法和 Server.Execute 方法。