问题描述:网站之前一直好好的,有一天打开网站(页面中)突然出现如下提示:
Microsoft JET Database Engine 错误 '80004005'
不能使用 '';文件已在使用中。
/conn.asp,行 10
问题分析:查看conn.asp这个文件的第10行,我们发现是关于数据库连接的代码,检查网站发现用的是ACCESS数据库,所以“文件已在使用中”显然指的就是数据库文件了,而“不能使用”引号中为空,说明使用access数据库在调用的时候要生成的临时文件为空,也就是没法为数据库调用生成临时文件。
所以问题就渐渐清晰了,首先检查你的网站空间有没有用完了,导致没有可用的空间容纳生成的临时文件进而导致“没法为数据库调用生成临时文件”,检查方法:有主机管理面板的话登陆管理面板查看空间使用情况即可知,如果没有主机控制面板的话用FTP软件,这里推荐用flashfxp软件登陆主机的FTP,在菜单栏 工具-->计算使用的FTP空间-->检查 开始计算你网站文件的大小,将计算的出的数据和你主机的总空间比较即可,如果可用空间小于你网站数据库文件的大小的话,显然是你空间装满了导致的,解决办法是升级更大的空间!
此外ACCESS数据库是文件数据库,不适合高并发、大访问量的网站使用,如果你的网站并发数(可简单理解为同时在线人数)会大于250个的话,由于ACCESS数据库无法承载那么大的连接请求也会导致此问题。查看网站访问统计即可的到你网站访问量的数据,解决方法是升级ACCESS数据库为MSSQL 或 MYSQL等网络数据库。
一般来说第一种情况比较常见,由于大多数ACCESS数据库的网站都是访问量较小的中小企业网站,第二种情况是比较少见的, 所以深圳极速久久网络科技提醒你根据自己的情况对应着来解决。
以上问题的ASP.NET网站报错信息可能如下:
“/”应用程序中的服务器错误。
不能使用 '';文件已在使用中。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 不能使用 '';文件已在使用中。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[OleDbException (0x80004005): 不能使用 '';文件已在使用中。]
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +969373
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4863644
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.OleDb.OleDbConnection.Open() +40
PageAdmin.lanmu.Page_Load(Object sender, EventArgs e) +129
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627