1

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

引发异常时打开的数据库保持打开状态。有一个 LDB 锁定文件,我无法重命名或删除 LDB 或 MDB 文件,但我可以使用 FTP 下载 MDB 文件。第二个访问数据库未打开,但任何读取此数据库的尝试也会挂起会话。

访问 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()'.

有什么方法可以解除站点/强制远程关闭数据库?

4

2 回答 2

0

IIS6 至少每 26 小时重新启动一次应用程序池。
https://serverfault.com/questions/108898/restart-iis-app-pool-automatically

试试这个重启脚本
http://forums.iis.net/t/955382.aspx

于 2010-05-20T07:03:38.763 回答
0

托管您网站的进程已进入未知状态。异常 C0000005 是访问冲突。

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

于 2010-05-19T22:01:55.843 回答