我们在Windows Server 2003 Enterprise Edition上的IIS 6上运行了一个C#/ ASP.NET(2.0)应用程序.此应用程序使用OleDb读取Excel文件,但有些情况下我们从应用程序中抛出"未指定的错误"异常.
在打开之前,文件由我们的文件上传代码存储在临时目录中.由于我们在IIS中启用了匿名访问,并且由于我们还在web.config中使用模拟,因此文件夹C:\ Windows\Temp \具有能够创建的Internet来宾用户帐户(IUSR_ [MachineName])的适当权限,修改和删除那里的文件.
OleDb连接字符串:
Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ Windows\Temp\tmp123.tmp.xls;
扩展属性="Excel 8.0; HDR =是; IMEX = 1;"
[上面的"数据源"属性将针对每个文件进行更改.]
The stack trace of the exception is:
System.Exception: FileParsingFailed ---> System.Data.OleDb.OleDbException:
Unspecified error 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()
解决方法:
到目前为止,我们可以提出的唯一解决方法是执行iisreset(我们还将应用程序池回收配置为每天在IIS中执行一次,但它似乎没有帮助,因为问题有时会连续几天持续存在).虽然这不是一件好事,但更糟糕的是,我们在同一网站上有其他应用程序,每当我们重置IIS时都会受到影响.
问题:
1.我们如何解决这个错误,因为它偶尔发生,我们没有看到一个模式?
2.除了OleDb之外,还有更好(和免费)的方法来处理来自C#/ ASP.NET的Excel文件吗?(我们不希望在服务器上安装MS Office,因为它不是微软推荐的)
我们的局限性:
1.我们坚持使用MS Office …