2013-06-27 62 views
1

如果這是一個愚蠢的問題,請原諒我,我是ASP新手。我有一個虛擬的Windows Server 2012處理ASP頁面,將它們傳遞給主機進行測試。有一個global.asa文件聲明瞭幾個應用程序級別的變量,儘管它似乎沒有工作。我不確定是否需要調用該文件或什麼,儘管我找不到在互聯網上調用它的任何參考。未初始化的經典ASP應用程序變量

Global.asa中:

<SCRIPT LANGUAGE=VBScript RUNAT=Server> 
Sub Application_OnStart 
    Application("someVar") = "testing..." 
    'More vars... 
End Sub 
</SCRIPT> 

在Default.asp的(或任何其他文件爲此事)

Repsonse.Write(Application("someVar")) 

什麼都不會輸出。

但是,如果我事先立刻像這樣指定值:

Application("someVar") = "testing..." 
Repsonse.Write(Application("someVar")) 

它會輸出「的測試......」像它應該。

之後,刪除Application("someVar") = "testing..."行仍然會輸出「測試...」。所以這個變量被保留下來了,它並沒有被global.asa文件初始化。

我還需要通過global.asa文件來初始化它們嗎?這是我的虛擬服務器設置的問題嗎?我應該提到通過網絡瀏覽器導航到global.asa文件給我一個404錯誤。我不確定服務器是否試圖隱藏它,但我確信它與default.asp位於同一目錄中,但瀏覽器拒絕驗證這一點。

+0

根據[w3schools](http://www.w3schools.com/asp/asp_globalasa.asp)(是的,我知道),只要您修改Application_OnStart子例程,就需要重新啓動服務器。 –

+0

這是我忽略的,但重新啓動似乎沒有幫助。它確實清除了我在global.asa文件之外手動設置的變量(這很合理)。但是他們仍然沒有初始化,因爲global.asa會指出。 – Doug

+0

官方文檔是[here](http://msdn.microsoft.com/。com/en-us/library/ms525316%28v = vs.90%29.aspx)和[this SO question](http://stackoverflow.com/questions/559076/global-asa-where-does-it-屬於)可能會有幫助。 –

回答

0

如果未將該站點設置爲應用程序,則全局iis定義的應用程序變量將不起作用。

您需要打開IIS並將網站設置爲新網站。

打開iis管理器 展開服務器名稱, 展開'網站' 您擁有的任何網站都將被列出。

設置新的網站上的網站「 R-單擊並選擇「添加網站」 給它一個名稱,通過瀏覽選擇它的位置,並根據需要設置主機頭如www.mytestdomain.co.uk

OR(這往往是在測試設置的原因)

如果你有一個默認的站點設置,這個應用程序是一個子文件夾,那麼你可以通過簡單地右鍵點擊文件夾設置子文件夾作爲應用程序,然後選擇「轉換爲應用程序'。點擊彈出確定確定。

0
<SCRIPT LANGUAGE=VBScript RUNAT=Server> 
Sub Application_OnStart 
    Application("someVar") = "testing..." 
    'More vars... 
End Sub 
</SCRIPT> 

也許,在應用程序已經運行之後,您在Global.asa中設置了var someVar!如果是這樣,Application_OnStart事件已經被執行了!!!