Exception 在异常挂起会话后,是否可以取消远程IIS ASP服务器的挂起?

Exception 在异常挂起会话后,是否可以取消远程IIS ASP服务器的挂起?,exception,asp-classic,scriptengine,Exception,Asp Classic,Scriptengine,我一直在用经典ASP编写一个应用程序,它可以访问2个Access数据库。我有一个我正在处理的页面抛出了一个异常,这在开发过程中是正常的,不会导致持久的问题。但是,这一次,在异常发生后,任何打开任一数据库的尝试都将冻结会话,并导致无限脚本超时。如果我删除会话cookie,我将能够再次访问ASP页面,直到我再次尝试打开数据库 引发异常时打开的数据库保持打开状态。有一个LDB锁定文件,我不能重命名或删除LDB或MDB文件,尽管我可以用FTP下载MDB文件。第二个access数据库未打开,但任何读取该数

我一直在用经典ASP编写一个应用程序,它可以访问2个Access数据库。我有一个我正在处理的页面抛出了一个异常,这在开发过程中是正常的,不会导致持久的问题。但是,这一次,在异常发生后,任何打开任一数据库的尝试都将冻结会话,并导致无限脚本超时。如果我删除会话cookie,我将能够再次访问ASP页面,直到我再次尝试打开数据库

引发异常时打开的数据库保持打开状态。有一个LDB锁定文件,我不能重命名或删除LDB或MDB文件,尽管我可以用FTP下载MDB文件。第二个access数据库未打开,但任何读取该数据库的尝试都会挂起会话

访问HTML页面很好

该站点由Hostway托管,他们对此不感兴趣(“编码问题=您的问题”,即使它会让我的站点陷入困境,我怀疑直到下次重新启动,无论何时)

以下是引发异常的相关ASP页面的转储:

Active Server Pages error 'ASP 0115'
Unexpected error

/translatestats.asp

A trappable error (C0000005) occurred in an external object. The script cannot continue running.
Active Server Pages error 'ASP 0240'
Script Engine Exception

/translatestats.asp

A ScriptEngine threw exception 'C0000005' in 'IActiveScript::Close()' from 'CActiveScriptEngine::FinalRelease()'.

是否有任何方法可以解除站点锁定/强制远程关闭数据库?

承载站点的进程已进入未知状态。异常C0000005是访问冲突


恢复这种情况的唯一方法是结束进程,在IIS中,这意味着回收运行应用程序的应用程序池。

IIS6至少每26小时重新启动一次应用程序池
()

尝试使用此重新启动脚本

@user89691:我不知道,我可以“从地球的另一端”将它传送到我的一台服务器上,所以地理位置不是问题。争论的是你的主人愿意给你的控制水平。更令人担忧的是,要么您在一些非常成熟的组件中发现了一个奇怪的错误,要么您的主机服务器在安装这些组件时遇到了一些问题。如果他们仍然不雅观,你可能需要把你的业务转移到其他地方。我在谷歌上搜索了转储内容,似乎不知何故我正在杀死脚本引擎,可能是因为一个未处理的异常。我的下一个重点将是尝试在IIS下本地运行代码。@user89691:确实如此。您应该首先在本地IIS上测试所有代码。让您的现场站点作为生产站点。让IIS在本地运行也被证明是一场噩梦。我可以在WinXPSP3上将IIS5升级到6吗(以便与hostway服务器上运行的内容保持一致?@user89691:对于经典ASP工作,IIS 5.1和IIS 6之间的差异很小。我从未发现在IIS6上失败的东西可以在IIS5.1上运行。是的,IIS版本与操作系统版本相关联。关于“噩梦”可以更具体一点,它通常非常直截了当。果然,在我第二次杀死它两个小时后,该网站又恢复了生机。现在我想要的是一个经典的ASP的片段,我可以调用它踢在头上的下一次。。。编辑间隔27小时太长。顺便说一句,上面的脚本链接()是一个死链接。我本打算帮你找到一些脚本来帮助你解决这个问题,但实际上最好的方向是修复这个错误。哈哈,请尝试其中一些()或提供更多信息,以便我们可以帮你修复这个错误:DThanks Randy。问题是,所有的解决方案,如“检查一个无用的dll”,都是我无法访问(hostway)服务器,除非通过电子邮件发送给一个没有帮助的支持团队,他们对是否涉及第三方代码嗅探都不感兴趣。我当然想找到这个bug,但是现在每次它发生的时候,我都得离开一天,做些别的事情。更新。我终于在localhost上运行了,并且能够在本地运行有问题的代码。我在一个错误的SQL字符串中遇到了一个错误“error 16389([Microsoft][ODBC Microsoft Access Driver]查询太复杂。)”(我将“SELECT COUNT(*)AS TotalRecords”作为查询-注意缺少表名)。这可能是让web服务器上的IIS感到不安的原因(它是IIS6,我正在运行IIS5)@user89691:我想你不会发现问题仅仅在于IIS6和IIS5之间的差异。这是一个相当简单的错误,服务器进程不应该因此而锁定。