繁体   English   中英

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

[英]Classic ASP Application Variables Not Initialized

如果这是一个愚蠢的问题,请原谅我,我是ASP的新手。 我有一个处理Windows ASP页面的虚拟Windows Server 2012,将其传递给主机以进行测试。 有一个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在同一目录中,浏览器只是拒绝对此进行验证。

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

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

打开iis管理器,展开服务器名称,展开“站点”,将列出您拥有的所有站点。

要设置新站点,请在“站点”上单击鼠标右键,然后选择“添加网站”。为其命名,通过浏览选择其位置,并根据需要设置主机头,例如www.mytestdomain.co.uk

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

如果您具有默认站点设置,并且此应用程序是子文件夹,则可以通过右键单击文件夹并选择“转换为应用程序”将该子文件夹设置为应用程序。 在弹出窗口上单击“确定”进行确认。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM