经典ASP应用程序变量未初始化

时间:2013-06-27 16:41:28

标签: asp-classic application-variables

请原谅我,如果这是一个愚蠢的问题,我是ASP的新手。我有一个虚拟的Windows Server 2012处理ASP页面,将它们传递给主机进行测试。有一个global.asa文件声明了几个应用程序级变量,虽然它似乎没有工作。我不确定我是否需要调用该文件或什么,但我找不到任何在互联网上调用它的参考。

在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..."行仍将输出“testing ...”。因此保留变量,它最初不是由global.asa文件设置的。

我需要做些什么来通过global.asa文件初始化它们吗?我的虚拟服务器设置有问题吗?我应该提一下,通过Web浏览器导航到global.asa文件会给我一个404错误。我不确定服务器是否试图隐藏它,但我确信它与default.asp在同一目录中,浏览器只是拒绝验证这一点。

2 个答案:

答案 0 :(得分:0)

如果未将网站设置为应用程序,则全局iis定义的应用程序变量将不起作用。

您需要打开IIS,并将网站设置为新网站。

打开iis经理 展开servername, 展开'网站' 您将拥有任何网站。

设置新网站 点击“网站”,然后选择“添加网站” 给它起一个名字,通过浏览选择它的位置,如果需要,设置主机标题,例如www.mytestdomain.co.uk

OR(这通常是测试设置中的原因)

如果您有默认的网站设置,并且此应用程序是一个子文件夹,那么您只需右键单击文件夹并选择“转换为应用程序”即可将该子文件夹设置为应用程序。点击弹出窗口上的确认确认。

答案 1 :(得分:0)

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

可能是,你在应用程序运行后在Global.asa中设置了var someVar!如果是这样,Application_OnStart事件已经执行!!!