Asp classic FoxPro ODBC驱动程序错误“;无法创建临时工作文件“;

Asp classic FoxPro ODBC驱动程序错误“;无法创建临时工作文件“;,asp-classic,odbc,visual-foxpro,Asp Classic,Odbc,Visual Foxpro,我有一个用ASP Classic编写的应用程序,它连接到一个FoxPro数据库,该数据库间歇性地抛出此错误消息,该错误消息可在IIS日志文件中找到: 14 | 80004005 |[Microsoft][ODBC Visual FoxPro驱动程序]无法创建临时工作文件 引用的行是针对FoxPro数据库的SELECT语句。并非每次运行此特定SELECT语句时都会发生此错误 有关此错误的有用信息表明,问题可能是由于权限或磁盘空间造成的。权限至少是半功能性的,因为问题并不总是发生。磁盘空间也不是问题

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

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

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

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


我还可以寻找什么?

FoxPro ODBC驱动程序是否正在自我清理

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

根据这本古书:

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

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

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


如果需要将临时文件写入磁盘,并且该文件在上次执行时已存在,则驱动程序将抛出错误“无法创建临时工作文件”。是否已向IUSR_machinename和IWAM_machinename授予文件夹和文件夹内容更改权限