我正在尝试执行以下操作:
- 用户进入网页,上传 XLS 文件
- 使用 ADO .NET 打开 XLS 文件,使用 JET 引擎连接到 Web 服务器上本地上传的文件
这一切都在本地运行良好(我的机器作为客户端和 Web 服务器) - 实际上正在使用远程客户端在客户的 Web 服务器上工作,但在尝试使用远程客户端进行内部测试时无法正常工作。
我得到的错误是:
TIME: [10/1/2008 11:15:28 AM]
SEVERITY: EXCEPTION
PROGRAM: Microsoft JET Database Engine
EXCEPTION: Unspecified error
STACK TRACE: at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
产生错误的代码是:
OleDbConnection l_DbConnection;
OleDbDataAdapter l_DbCommand;
DataSet l_dataSet = new DataSet();
l_DbConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=\"" + l_importFileName + "\";Extended Properties=Excel 8.0;");
l_DbCommand = new OleDbDataAdapter("select * from [Sheet1$]", l_DbConnection);
//try using provider to read file
try { l_DbConnection.Open(); }
对“打开”的调用引发了上述异常。
该站点正在使用模拟,并且所有呼叫都是在用户登录客户端时进行的。到目前为止我所做的一切都是为了让这个工作:
按照此处的步骤http://support.microsoft.com/kb/251254/并将 TMP/TEMP 环境变量目录的权限分配给我用来测试的用户(也将权限分配给 ASPNET,然后分配给“每个人”作为一个毯子“这个权限相关吗?”测试)。
确保文件正在上传,并且 XLS 文件本身继承了允许用户完全访问文件的目录权限。为了以防万一,我还将此目录权限授予“每个人” - 这也没有帮助。
我不必更改任何环境变量,因此在进行这些更改后不必重新启动 - 但我不应该让 Windows 文件夹/文件权限生效。
在这一点上,我完全不知所措