Access数据操作报错:System.Data.OleDb.OleDbException: 未指定的错误,英文:system.data.oledb.oledbexception: unspecified error

程序部署到Windows Server 2019上后报错:“/”应用程序中的服务器错误。详细信息: 

未指定的错误

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误, 如下图:

这里总结提供几种详尽解决方案:

• 在 Machine.config 文件的 <processModel> 部分中将 ASP.NET 工作进程配置为在 SYSTEM 帐户下运行。

• 出于安全原因,Microsoft 建议您在 ASP.NET 应用程序上启用模拟。如果模拟用户对您正在访问的计算机和数据库具有必要的权限,则此方法有效。请参阅无法连接到您的数据库。

• 授予“Everyone”组对数据库和数据库文件夹的读写权限。此方法不安全;因此,Microsoft 不推荐此方法。

MDB 文件不能是只读的

这可能是 Microsoft Access 数据库出现问题的最常见原因。

Microsoft Access 数据库只能位于本地驱动器上

这是 Microsoft JET 驱动程序的限制,而不是 Iron Speed Designer 的限制。

包含 MDB 文件的文件夹必须具有读写权限

MDB 文件可以位于本地驱动器上的任何文件夹中,但该文件夹必须具有 ASPNET 用户的读/写权限。转到 Windows 资源管理器并添加 ASPNET 用户,使其对包含 MDB 文件的文件夹具有完全权限。

应用程序的 Web.config 文件中指定的路径必须是完整指定的路径

从 Iron Speed Designer 2.1.2 版开始支持 Web.config 文件中的相对路径。

ASPNET 帐户必须具有对 Temp 文件夹的读写权限

确保 ASPNET 用户帐户对系统的 Temp 文件夹具有完全的读写权限,例如:

 系统盘:\Documents and Settings\ASPNET\Local Settings\Temp  

② 系统盘:\Windows\Temp     如下图:

另外,查看目标系统属性下的系统环境变量,查看临时文件夹的位置。请注意,本地设置文件夹可能被隐藏,您可能需要启用它才能查看。 确保 ASPNET 用户对这些文件夹具有完全的读写权限。

早期Windows server版本可以采用 ① 盘符路径设置权限, 如本文的异常是在Windows Server 2019系统环境下通过 ② 盘符路径设置的权限。  其次,关于 System.Data.OleDb.OleDbException 报错有时也有程序内部报错,那种情况会报出具体代码行的异常(例如:合计参数中不能有 Memo、OLE 或超级链接对象),而这种是“未指定的错误”System.Data.OleDb.OleDbException: 未指定的错误,大致意思是找不到代码异常,那就存在权限异常。