FoxPro ODBC驱动程序错误"无法创建临时工作文件"

时间:2014-06-09 13:26:27

标签: asp-classic odbc visual-foxpro

我有一个用ASP Classic编写的应用程序并连接到FoxPro数据库,它间歇地抛出了这个错误消息,在IIS日志文件中找到:

14 | 80004005 | [Microsoft] [ODBC Visual FoxPro驱动程序]无法创建临时工作文件。

引用的行是针对FoxPro数据库的SELECT语句。每次运行此特定SELECT语句时都不会发生错误。

有关此错误的有用的MSDN Article表明问题是由于权限或磁盘空间造成的。权限至少是半功能的,因为问题并不总是发生。磁盘空间也不是问题,因为驱动器上有足够的可用空间(8GB),与所讨论的数据库大小成比例(约500MB)。

我还能找到什么?

2 个答案:

答案 0 :(得分:1)

FoxPro ODBC驱动程序是否自行清理?

查看您的TEMP文件夹(在我的案例中由%TEMP%环境变量定义),您可能会看到大量与[A-Z0-9]{8}\.TMP表达式匹配的文件(例如LVAK00AQ.TMP

根据这篇古老的书,FIX: TMP File Errors If ALTER TABLE Runs Same Time As ODBC DLL

  

Visual FoxPro和VFP ODBC驱动程序都使用相同的命名   临时(.tmp)文件创建的约定和算法。如果两者   程序同时运行,进程中存在冲突   尝试访问相同的文件或相同的文件名。这场冲突   创建不同的错误消息。

     

Visual FoxPro 5.0x使用基于系统的临时文件命名方案   时钟。这些名称是为内部使用而生成的   文件名永远不会在磁盘上创建。但是,有   许多情况下FoxPro确实在磁盘上创建临时文件,   所以名称生成方案可能会导致两个或两个进程   运行时的实例在同一进程中生成相同的   临时文件名。如果两个进程都尝试创建临时文件   稍后在磁盘上,只有第一个成功。

根据我的经验,文件命名模式基于一小部分时间,并且字母数字方案限制为8个字符,它将在短时间内从0开始(不确定是小时还是数天)

如果需要将临时文件写入磁盘,并且该文件已经存在以前的执行,那么驱动程序将抛出错误"无法创建临时工作文件"而不是覆盖以前的文件;

答案 1 :(得分:0)

您是否为IUSR_machinename& IWAM_机器?