我仍然需要使用经典的 asp,并且我遇到了现有应用程序的 Application_OnEnd 和 Session_OnEnd 事件问题 - 即它们不起作用。 OnStart 事件正常工作。我不知道是什么导致 OnEnd 事件起作用;早些时候他们曾经正常工作。我的 IIS 版本是 10。有人遇到过这个问题并找到解决方案吗?
我在使用 IIS 10 的远程服务器(共享托管环境)上也遇到了同样的问题。
根据用户692942的回复,有一个包含解决方案的旧类似问题,请参阅:https://blogs.iis.net/lprete/session-onend-classic-asp-and-iis-7-0。
因此,该问题是由于 applicationhost.config 文件中的设置造成的。为了使 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-events 问题。好吧,现在我们知道解决办法了。