2

如果这是一个愚蠢的问题,请原谅我,我是 ASP 新手。我有一个处理 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 文件初始化它们吗?我的虚拟服务器设置有问题吗?我可能应该提到,通过网络浏览器导航到 global.asa 文件会给我一个 404 错误。我不确定服务器是否试图隐藏它,但我可以确定它与 default.asp 位于同一目录中,浏览器只是拒绝验证这一点。

4

2 回答 2

0

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

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

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

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

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

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

于 2013-09-20T11:35:17.817 回答
0
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
    Application("someVar") = "testing..."
    'More vars...
End Sub
</SCRIPT>

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

于 2015-07-25T08:33:14.173 回答