经典 asp application_OnEnd和 session_OnEnd 事件不起作用

Classic asp application_OnEnd and session_OnEnd events not working

提问人:M.Y. 提问时间:9/12/2023 最后编辑:user692942M.Y. 更新时间:9/12/2023 访问量:71

问:

我仍然需要使用经典的 asp,并且我面临着现有的应用程序,即 Application_OnEnd 和 Session_OnEnd 事件的问题 - 即不起作用。OnStart-events 正常工作。我不知道是什么原因导致 OnEnd 事件无法正常工作;早些时候,他们曾经正常工作。我的 IIS 版本是 10。有没有人遇到过这个问题并找到了解决方案?

我在使用 IIS 10 的远程服务器(共享托管环境)上也遇到了同样的问题。

IIS ASP-经典

评论

1赞 user692942 9/12/2023
类似的问题,评论中有一些有用的信息。但是,如果没有更多细节,我看不出我们如何为您提供帮助。
0赞 M.Y. 9/12/2023
感谢您提供此链接 - 即我在那里找到了解决问题的解决方案。我将用解决方案更新我的问题。
1赞 user692942 9/12/2023
真棒。但是,请不要在问题中添加解决方案,而是添加答案

答:

2赞 user692942 #1

根据 user692942 的回复,有一个较旧的类似类型的问题包含解决方案,请参阅:https://blogs.iis.net/lprete/session-onend-classic-asp-and-iis-7-0

因此,该问题是由于 applicationhost.config -file 中的设置造成的。必须满足以下条件才能使 OnEnd 事件在 global.asa 中正常工作:

<system.webServer>
    <asp runOnEndAnonymously="false" />

</system.webServer>

这可以通过从命令行运行以下命令(具有管理员权限)来简单地设置:

cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/AspRunOnEndAnonymously false

因此,IIS 10 似乎会自动将其设置为 true,从而导致 OnEnd 事件出现问题。好吧,现在我们知道了它的修复方法。